% % check the date/time of Run file compared to mod date/time % insure the root name is simplified to non-# separated % *jsphsimp % % inspect the file date-time compared to the tree % root\ % % determine time difference between file and tree node % *runroots "_Fname" \! % % if no file time recorded, use ancient time/date in time diff % "_wtime" \_ any? { } { % % no time/date of output xml % "1/1/1980" } ifelse % % stack: file-time % "_Fname" \_ dup exists { % % stack: file-time filename % % task tree has modification stamp for comparison % compare the Run file date/time with the recorded modification time % stamp % % record the last xml file time/date % dup "_wtime" \! } { % % stack: file-time filename % % mark as missing % "Missing" _\ Tree.!Mark % % stack: file-time filename % pop dup } ifelse "s" Time.Diff % % stack: time-diff % "Diff " log)( unwhole { % % file older than tree mod, tree is used % "Default" _\ Tree.!Mark } { % % the Run file is newer than the tree source file % mark the modification of the tree using its date/time % _\ Tree./Below "_Fname" \_ stamp "_wtime" \! "_Fname" \_ read dup "Body" \! ^"" &"" "linkxml " log)( "XmlDance" dance sel@ any? { dup execstr } if % % insure root name proper % _@ "#" Str.RevRight !\\ *expander % % mark the tree as changed % nod@ } ifelse