% % peps will remain open, their contents are saved % at every update session, they may be closed or referenced % % stack: [ . . . ] operation % < % % add a pep % |Add % % stack: mep-name % _Mep.Persist exch dup { exch !Mep.Persist } if |Inject % % stack: persist-ident % *perspart ._MepSpec exists % % stack: remaining-name root-mep-name % { "Exists" } { "New" } ifelse .!MepFiled |Load % % is there a filespec % ._MepSpec %%% "mspec" log)( any? { % % stack: tree-file-spec % dup exists "treld" log)( { Tree.Load } { pop _@ yml ^"<" &"/>" @!Tree pop } ifelse true @!ScrollBoth @^Open } if % % save the current pep tree % |Save *perssave % % overwrite the current pep tree % |Over *persover /* % % save the current pep branch in Run format % |Branch % % save task tree as extension of current mep for this % % stack: pers-mep-name % _\ whole { % % valid node, create the xml file data % *xmlxruns % % create the extended pep branch filename % ._MepSpec dup fileroot _\ "Fpath" get "\" "#" replall & &".xml" % % put xml file into original peps directory % exch pathonly ^ write } if */ % % list the current peps % |List _Mep.Persist <_> % % stack: [ . . . ] count % % % does the name exist among peps % |Exists % % stack: pers-mep-name % _Mep.Persist <> % % stack: persisting % % % insure no peps in list % |Clear empty !Mep.Persist % % remove a mep from peps % |Stop % % stack: mep-name % _Mep.Persist exch *lookremv !Mep.Persist % % indicate the tree activity has ended % empty .!active % % push the current pep tree % |Push % % set current backup empty % empty .!MepBak *archcopy > not { } if % % always record the last operated-upon peps collection % _Mep.Persist "___Persist" text!bin % % stack: [ . . . ] %