% % helps will remain open, their contents are saved % at every update session, they may be closed or referenced % % stack: [ . . . ] operation % < % % navigate existing help % % stack: navroot % |NavLocal % % stack: navroot % "Host" .!MepSource %%% ">hostn>" log)( localhost % % stack: nav-url % *navformp % % stack: % % % stack: navroot % |NavPort % % stack: navroot % "Port" .!MepSource %%% ">hostn>" log)( localporu % % stack: nav-url % *navformp % % stack: % % % add a help % % stack: navroot % x y w h % mep-name % mep-slot % |Load exch dup 1 left < % % stack: navroot % x y w h % mep-slot % mep-name % % located in file system % |@ -1 left "Host" % % explicit url % |/ -1 left "Url" % % localhost % |_ -1 left "Host" % % localhost port % |: -1 left "Port" > not { % % Normal % "Host" } if % % stack: navroot % x y w h % mep-slot % mep-name % target-name % second !@ .!MepSource _Mep.Help exch % % stack: navroot % x y w h % mep-slot % help-name % mep-name % % % stack: navroot % x y w h % mep-slot % [ help-lookup ] if new help % new-help % %%% "newhelp" log)( { !Mep.Help % % stack: navroot % x y w h % mep-slot % 5 1 roll Str.Raw(4) .!MepRegion 5 -1 roll % % stack: navroot % x y w h % mep-slot % % new entry in the help table % ._MepSource "newsrc" log)( < |Url *navurlsm |Host *navhostm |Port *navportm > pop % % stack: % } { % % stack: navroot % x y w h % mep-slot % % the mep exists in the help table % ._MepSource %%% "existsrc" log)( < |Url pop *navurlsn |Host pop *navhostn |Port pop *navportn > pop } ifelse % % stack: % _@ @@ "histload" log)( dup .!_Helper dup !Helping !@ % % list the current helps % |List _Mep.Help <_> % % stack: [ . . . ] count % % does the name exist among helps % |Exists % % stack: pers-mep-name % _Mep.Help <> % % stack: helping % % insure no helps in list % |Clear empty !Mep.Help % % remove a mep from helps % |Stop % % stack: mep-name % _Mep.Help exch *lookremv !Mep.Help > not { } if