Monday, November 08, 2010 at 12:01 AM.
system.verbs.apps.FinderMenu.commands.reconciler
<<Tue, Feb 11, 1997 at 3:33:08 AM by DW <<There isn't enough stack space in the Finder to run a complex reconcile <<So I changed the command to do the reconciling in a separate Frontier thread. <<Let's look for other places where FinderMenu might recurse very deeply. <<Fri, Dec 5, 1997 at 1:41:58 AM by PBS <<Changed call to toys.threadCall to thread.easyCall. local (sourcepath, destpath); on getfolders () { local (sellist = FinderMenu.getSelectionList ()); if sizeof (sellist) != 2 { scriptError ("Please select exactly two folders.")}; on getfolder () { local (f = sellist [1]); delete (@sellist [1]); if file.isalias (f) { f = file.followAlias (f)}; if not file.isfolder (f) { scriptError (f + " is not a folder.")}; return (f)}; sourcepath = getfolder (); destpath = getfolder ()}; getfolders (); local (dlogResource = findermenu.commands.reconcileDialog.copyToResourceFork ()); on doDialog () { local { <<names of the fields of the dialog okitem = 1; cancelitem = 2; switchitem = 3; sourceitem = 4; destitem = 5}; local (cancelled = false); on copytodialog () { dialog.setvalue (sourceitem, sourcepath); dialog.setvalue (destitem, destpath)}; on copyfromdialog () { on check (msg, f) { if file.exists (f) and file.isFolder (f) { return (true)}; dialog.alert (msg + " is not a folder, or it doesn't exist."); return (false)}; local (f); f = dialog.getvalue (sourceitem); if not check ("Source folder", f) { return (false)}; sourcepath = f; f = dialog.getvalue (destitem); if not check ("Destination folder", f) { return (false)}; destpath = f; return (true)}; on itemhit (item) { case item { -1 { copytodialog (); return (true)}; okitem { if copyfromdialog () { return (false)}}; cancelitem { cancelled = true; return (false)}; switchitem { local (s1, s2); s1 = dialog.getvalue (sourceitem); s2 = dialog.getvalue (destitem); dialog.setvalue (sourceitem, s2); dialog.setvalue (destitem, s1)}} else { return (true)}}; <<keep going if item isn't OK or Cancel dialog.run (dlogResource, okitem, @itemhit); return (not cancelled)}; if doDialog () { thread.easyCall ("file.reconcileFolder", {sourcepath, destpath, @msg})}; msg ("")
This listing is for code that runs in the OPML Editor environment. I created these listings because I wanted the search engines to index it, so that when I want to look up something in my codebase I don't have to use the much slower search functionality in my object database. Dave Winer.