From 40c10a7841428134c6f87deda43743e3a9f41e3b Mon Sep 17 00:00:00 2001 From: Larry Masinter Date: Thu, 9 Dec 2021 12:32:20 -0800 Subject: [PATCH] Shrink menu filebrowser icon restored (#595) --- library/FILEBROWSER | 1593 ++++++++++++++++++++------------------ library/FILEBROWSER.LCOM | Bin 84436 -> 88036 bytes 2 files changed, 819 insertions(+), 774 deletions(-) diff --git a/library/FILEBROWSER b/library/FILEBROWSER index 9243456a..e71b16c4 100644 --- a/library/FILEBROWSER +++ b/library/FILEBROWSER @@ -1,12 +1,10 @@ (DEFINE-FILE-INFO PACKAGE "INTERLISP" READTABLE "XCL" BASE 10) -(FILECREATED "23-Nov-2021 12:17:08"  -|{DSK}kaplan>Local>medley3.5>my-medley>library>FILEBROWSER.;21| 261024 +(FILECREATED " 2-Dec-2021 19:33:12" |{DSK}larry>medley>library>FILEBROWSER.;44| 267497 - |changes| |to:| (FNS FB.FIX-DIRECTORY-DATES) + |changes| |to:| (VARS FILEBROWSERCOMS) - |previous| |date:| "29-Oct-2021 21:19:42" -|{DSK}kaplan>Local>medley3.5>my-medley>library>FILEBROWSER.;20|) + |previous| |date:| "23-Nov-2021 12:17:08" |{DSK}larry>medley>library>FILEBROWSER.;39|) ; Copyright (c) 1983-1991, 1993-1994, 1999-2001, 2021 by Venue & Xerox Corporation. @@ -26,9 +24,17 @@ (* |;;| "Set up for MODERNIZE windows, whether or not MODERNIZE is pre-loaded") (MOVD? 'NILL 'TOTOPW.MODERNIZE)) - - (* |;;| "JDS 11/94 FB.ICONSPEC is now an INITVAR so we can create smaller ones in profiles for, e.g., laptops.") + (COMS + (* |;;| "JDS 11/94 FB.ICONSPEC is now an INITVAR so we can create smaller ones in profiles for, e.g., laptops.") + (DECLARE\: DONTCOPY (E (SETQ *PRINT-ARRAY* T)) + + (* |;;| "lmm 12/21: *PRINT-ARRAY* also controls printing bitmaps. When doing MAKEFILE set it. It's RESETVAR'd so no need to set it back") + + DOCOPY + (INITVARS (FB.ICONSPEC '(#*(83 70)OOOOOOOOOOOOOOOOOOOON@@@OOOOOOOOOOOOOOOOOOOON@@@L@@@@@@@@@@@@@@@@@@@F@@@L@@@@@@@@@@@@@@@@@@@F@@@LOOOOOOOOOOOOOOOOOONF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@GOOOOOL@@@@@BF@@@LH@@@@@D@@@@@D@@@@@BF@@@LH@@@@@D@@@@@D@@@@@BF@@@LH@@@@@DCOOOHD@@@@@BF@@@LH@@@@@D@@@@@D@@@@@BF@@@LH@@@@@DOOOOND@@@@@BF@@@LH@@@@@D@@@@@D@@@@@BF@@@LH@@@@@D@@@@@D@@@@@BF@@@LH@@@@@GOOOOOL@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@COOOOOH@@@@@BF@@@LH@@@@@COOOOOH@@@@@BF@@@LH@@@@@B@@@@@H@@@@@BF@@@LH@@@@@A@@@@A@@@@@@BF@@@LH@@@@@@OOOON@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LOOOOOOOOOOOOOOOOOONF@@@L@@@@@@@@@@@@@@@@@@@F@@@L@@@@@@@@@@@@@@@@@@@F@@@OOOOOOOOOOOOOOOOOOOON@@@OOOOOOOOOOOOOOOOOOOON@@@ + NIL + (5 5 73 40)))))) (INITVARS (FB.EXPUNGE?MENU) (FB.BROWSERFONT DEFAULTFONT) (FB.BROWSER.DIRECTORY.FONT BOLDFONT) @@ -179,7 +185,8 @@ You specify how many versions to keep."))) (* \; "Setup") (FNS FB.STARTUP FB.MAKERIGIDWINDOW) (FNS FB.PRINTFN FB.COPYFN)) - (COMS (* \; "commands and major subfunctions") + (COMS (* \; + "commands and major subfunctions") (FNS FB.MENU.WHENSELECTEDFN FB.COMMANDSELECTEDFN FB.SUBITEMP FB.MAKE.BROWSER.BUSY FB.FINISH.COMMAND FB.HANDLE.ABORT.BUTTON) (FNS FB.DELETECOMMAND FB.DELVERCOMMAND FB.IS.NOT.SUBDIRECTORY.ITEM FB.DELVER.FILES @@ -265,6 +272,13 @@ You specify how many versions to keep."))) "JDS 11/94 FB.ICONSPEC is now an INITVAR so we can create smaller ones in profiles for, e.g., laptops." ) +(DECLARE\: DONTCOPY +DOCOPY + +(RPAQ? FB.ICONSPEC '(#*(83 70)OOOOOOOOOOOOOOOOOOOON@@@OOOOOOOOOOOOOOOOOOOON@@@L@@@@@@@@@@@@@@@@@@@F@@@L@@@@@@@@@@@@@@@@@@@F@@@LOOOOOOOOOOOOOOOOOONF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@GOOOOOL@@@@@BF@@@LH@@@@@D@@@@@D@@@@@BF@@@LH@@@@@D@@@@@D@@@@@BF@@@LH@@@@@DCOOOHD@@@@@BF@@@LH@@@@@D@@@@@D@@@@@BF@@@LH@@@@@DOOOOND@@@@@BF@@@LH@@@@@D@@@@@D@@@@@BF@@@LH@@@@@D@@@@@D@@@@@BF@@@LH@@@@@GOOOOOL@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@COOOOOH@@@@@BF@@@LH@@@@@COOOOOH@@@@@BF@@@LH@@@@@B@@@@@H@@@@@BF@@@LH@@@@@A@@@@A@@@@@@BF@@@LH@@@@@@OOOON@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LH@@@@@@@@@@@@@@@@@BF@@@LOOOOOOOOOOOOOOOOOONF@@@L@@@@@@@@@@@@@@@@@@@F@@@L@@@@@@@@@@@@@@@@@@@F@@@OOOOOOOOOOOOOOOOOOOON@@@OOOOOOOOOOOOOOOOOOOON@@@ + NIL + (5 5 73 40))) +) (RPAQ? FB.EXPUNGE?MENU ) @@ -291,9 +305,9 @@ You specify how many versions to keep."))) (RPAQ? FB.DEFAULT.INFO '(SIZE CREATIONDATE AUTHOR)) (APPENDTOVAR FONTVARS (FB.ICONFONT LITTLEFONT) - (FB.BROWSERFONT DEFAULTFONT) - (FB.PROMPTFONT LITTLEFONT) - (FB.BROWSER.DIRECTORY.FONT BOLDFONT)) + (FB.BROWSERFONT DEFAULTFONT) + (FB.PROMPTFONT LITTLEFONT) + (FB.BROWSER.DIRECTORY.FONT BOLDFONT)) (* |;;| "FONTSET fills in the variables in FONTVARS for us, so do it.") @@ -394,25 +408,27 @@ You specify how many versions to keep."))) )) (RPAQQ FB.VERSION.MENU.ITEMS (("1" 1 "Keep only one version of the files") - ("2" 2 "Keep two versions of the files") - ("3" 3 "Keep three versions of the files") - ("4" 4 "Keep four versions of the files") - ("Other" :NUMBER "Select number of versions to keep"))) + ("2" 2 "Keep two versions of the files") + ("3" 3 "Keep three versions of the files") + ("4" 4 "Keep four versions of the files") + ("Other" :NUMBER "Select number of versions to keep"))) (RPAQQ FB.CLOSE.MENU.ITEMS (("Expunge deleted files" 'EXPUNGE - "Erases all files still marked 'deleted'") - ("Don't expunge" 'NOEXPUNGE "Proceeds (closes or updates browser) without expunging deleted files. + "Erases all files still marked 'deleted'") + ("Don't expunge" 'NOEXPUNGE "Proceeds (closes or updates browser) without expunging deleted files. Your deletions are thus ignored."))) (RPAQQ FB.DEPTH.MENU.ITEMS (("Global default" :GLOBAL - "Set depth using the global default (FILING.ENUMERATION.DEPTH)") - ("Infinite" T - "Set depth to infinity, i.e., enumerate all levels of directory") - ("1" 1 + "Set depth using the global default (FILING.ENUMERATION.DEPTH)" + ) + ("Infinite" T + "Set depth to infinity, i.e., enumerate all levels of directory" + ) + ("1" 1 "Set depth to 1, i.e., enumerate just the top level of the directory" - ) - ("2" 2 "Set depth to 2") - ("Other" :NUMBER "Set depth to some other finite depth"))) + ) + ("2" 2 "Set depth to 2") + ("Other" :NUMBER "Set depth to some other finite depth"))) (RPAQQ FB.INFO.MENU.ITEMS ((|Length| LENGTH "Toggles Length display") @@ -450,11 +466,13 @@ Your deletions are thus ignored."))) (* \; "Entries") -(DEFCOMMAND "fb" (&REST PAT&PROPS) (APPLY 'FB PAT&PROPS)) +(DEFCOMMAND "fb" (&REST PAT&PROPS) + (APPLY 'FB PAT&PROPS)) (DEFINEQ (FB - (NLAMBDA PATTERN (* \; "Edited 29-Oct-2021 21:18 by rmk:") + (NLAMBDA PATTERN (* \; + "Edited 29-Oct-2021 21:18 by rmk:") (* \; "Edited 26-Feb-88 13:50 by bvm") (* |;;;| "FILEBROWSER entry from top-level exec: FB PATTERN ... PROPS ...") @@ -476,19 +494,19 @@ Your deletions are thus ignored."))) NIL)) (FB.COPYBINARYCOMMAND - (LAMBDA (BROWSER) (* \; - "Edited 19-Oct-90 18:18 by gadener") + (LAMBDA (BROWSER) (* \; + "Edited 19-Oct-90 18:18 by gadener") (FB.COPY/RENAME.COMMAND BROWSER '|Copy| (CONS (FUNCTION COPYFILE) '((TYPE BINARY)))))) (FB.COPYTEXTCOMMAND - (LAMBDA (BROWSER) (* \; - "Edited 19-Oct-90 18:55 by gadener") + (LAMBDA (BROWSER) (* \; + "Edited 19-Oct-90 18:55 by gadener") (FB.COPY/RENAME.COMMAND BROWSER '|Copy| (CONS (FUNCTION COPYFILE) '((TYPE TEXT)))))) (FILEBROWSER - (LAMBDA (FILESPEC ATTRIBUTES OPTIONS) (* \; "Edited 30-Aug-94 19:45 by jds") + (LAMBDA (FILESPEC ATTRIBUTES OPTIONS) (* \; "Edited 30-Aug-94 19:45 by jds") (PROG ((TITLEFONT (DSPFONT NIL |WindowTitleDisplayStream|)) (BROWSERFONTHEIGHT (FONTPROP FB.BROWSERFONT 'HEIGHT)) (MENU-ITEMS FB.MENU.ITEMS) @@ -499,7 +517,7 @@ Your deletions are thus ignored."))) ((AND (LISTP OPTIONS) (SMALLP (CAR OPTIONS)) (AND (EQLENGTH OPTIONS 4) - (EVERY OPTIONS (FUNCTION NUMBERP)))) (* \; "Old style") + (EVERY OPTIONS (FUNCTION NUMBERP)))) (* \; "Old style") (SETQ REGION OPTIONS) (SETQ OPTIONS)) (T (|for| TAIL |on| OPTIONS |by| (CDDR TAIL) @@ -517,13 +535,13 @@ Your deletions are thus ignored."))) (|if| (AND (NOT (CL:KEYWORDP KEY)) (SETQ KEY (CL:FIND-SYMBOL (STRING KEY) *KEYWORD-PACKAGE*))) - |then| (* \; - "for backward compatibility, coerce other symbols to keywords") + |then| (* \; + "for backward compatibility, coerce other symbols to keywords") (GO RETRY))))))) (SETQ ATTRIBUTES (COND - (ATTRIBUTES (* \; - "Caller specifies which attributes to use") + (ATTRIBUTES (* \; + "Caller specifies which attributes to use") (|for| X |in| ATTRIBUTES |collect| (OR (CADR (FB.INFO.ITEM.NAMED X FB.INFO.MENU.ITEMS)) (AND (LISTP DIRCOMMANDS) @@ -531,15 +549,15 @@ Your deletions are thus ignored."))) |when| (AND (LISTP PAIR) (STRING-EQUAL X (CAR PAIR))) |do| - (* \; - "Found synonym in dircommands. This also takes care of attribute being in different packages") + (* \; + "Found synonym in dircommands. This also takes care of attribute being in different packages") (RETURN (CDR PAIR))) - (PROGN (* \; "Try spelling correction. Wanted to get synonyms this way, but MISSPELLED? seems to be package-sensitive.") + (PROGN (* \; "Try spelling correction. Wanted to get synonyms this way, but MISSPELLED? seems to be package-sensitive.") (MISSPELLED? X 90 DIRCOMMANDS)))) (\\ILLEGAL.ARG X)))) (T FB.DEFAULT.INFO))) - (PROGN (* \; - "Figure out the size of the fixed pieces before prompting for a region") + (PROGN (* \; + "Figure out the size of the fixed pieces before prompting for a region") (SETQ COMMANDMENU (|create| MENU MENUFONT _ FB.MENUFONT @@ -554,26 +572,26 @@ Your deletions are thus ignored."))) (SETQ COUNTERHEIGHT (HEIGHTIFWINDOW (FONTPROP TITLEFONT 'HEIGHT) T))) (PROGN - (* |;;| "First make the main window, carved out of the space in REGION leftover after the fixed parts are accounted for") + (* |;;| "First make the main window, carved out of the space in REGION leftover after the fixed parts are accounted for") (COND ((NOT REGION) (PROMPTPRINT (CL:FORMAT NIL "Specify region for FileBrowser~@[ on ~A~]" FILESPEC )) - (SETQ REGION (GETREGION (PROGN (* \; - "Min width is menu plus enough space to print a name") + (SETQ REGION (GETREGION (PROGN (* \; + "Min width is menu plus enough space to print a name") (+ COMMANDMENUWIDTH FB.DEFAULT.NAME.WIDTH TB.LEFT.MARGIN)) - (PROGN (* \; - "Min height is prompt window plus counter window plus heading plus 5 lines of files") + (PROGN (* \; + "Min height is prompt window plus counter window plus heading plus 5 lines of files") (+ PROMPTWHEIGHT COUNTERHEIGHT (TIMES 6 BROWSERFONTHEIGHT ))))) (CLRPROMPT))) (|if| (AND (NULL FILESPEC) (NOT (TTY.PROCESSP))) - |then| (* \; - "Grab the tty now, so that user can start typing ahead") + |then| (* \; + "Grab the tty now, so that user can start typing ahead") (TTY.PROCESS (THIS.PROCESS)) (ALLOW.BUTTON.EVENTS)) (SETQ BROWSERWINDOW (CREATEW (|create| REGION @@ -598,26 +616,26 @@ Your deletions are thus ignored."))) INFOMENUCHOICES _ ATTRIBUTES FBLOCK _ (CREATE.MONITORLOCK) FBDEPTH _ DEPTH)))) - (PROGN (* \; - "Atop this sits the black heading window, with labels for each column in browser") + (PROGN (* \; + "Atop this sits the black heading window, with labels for each column in browser") (|replace| (FILEBROWSER HEADINGWINDOW) |of| BROWSER |with| (SETQ HEADINGWINDOW (FB.MAKEHEADINGWINDOW BROWSERWINDOW BROWSERWIDTH BROWSERFONTHEIGHT FB.BROWSERFONT)))) - (PROGN (* \; - "Atop that is the counter window, whose title contains the file pattern") + (PROGN (* \; + "Atop that is the counter window, whose title contains the file pattern") (FB.MAKECOUNTERWINDOW BROWSERWINDOW TITLEFONT BROWSERWIDTH COUNTERHEIGHT TITLE)) - (PROGN (* \; - "Main command menu sits on the right side") + (PROGN (* \; + "Main command menu sits on the right side") (SETQ COMMANDMENUWINDOW (MENUWINDOW COMMANDMENU)) (ATTACHWINDOW COMMANDMENUWINDOW BROWSERWINDOW 'RIGHT 'TOP)) - (PROGN (* \; - "Finally the prompt window atop it all") + (PROGN (* \; + "Finally the prompt window atop it all") (|replace| (FILEBROWSER PROMPTWINDOW) |of| BROWSER |with| (FB.MAKERIGIDWINDOW (GETPROMPTWINDOW BROWSERWINDOW FB.PROMPTLINES FB.PROMPTFONT)))) - (PROGN (* \; - "Now make them all open. For some reason, attaching the menu didn't open it") + (PROGN (* \; + "Now make them all open. For some reason, attaching the menu didn't open it") (TOTOPW BROWSERWINDOW)) (|replace| (FILEBROWSER ABORTWINDOW) |of| BROWSER |with| (CONS (MENUWINDOW (|create| MENU @@ -636,8 +654,8 @@ Your deletions are thus ignored."))) (|fetch| (FILEBROWSER COUNTERWINDOW) |of| BROWSER) (|fetch| (FILEBROWSER PROMPTWINDOW) |of| BROWSER)) |bind| OLDCOMS |when| (LISTP (SETQ OLDCOMS (WINDOWPROP W 'PASSTOMAINCOMS))) - |do| (* \; - "Make all these subwindows pass hardcopy on to the main window") + |do| (* \; + "Make all these subwindows pass hardcopy on to the main window") (WINDOWPROP W 'PASSTOMAINCOMS (UNION '(HARDCOPYIMAGEW) OLDCOMS))) (|replace| (FILEBROWSER TABLEBROWSER) |of| BROWSER @@ -655,8 +673,8 @@ Your deletions are thus ignored."))) |then| (DIRECTORY.FILL.PATTERN FILESPEC) |else| (FB.STARTUP BROWSER COMMANDMENU (FUNCTION FB.GET.NEWPATTERN)))) - |then| (* \; - "Have a pattern to work with. Now enumerate it in a new process.") + |then| (* \; + "Have a pattern to work with. Now enumerate it in a new process.") (FB.SETNEWPATTERN BROWSER FILESPEC) (ADD.PROCESS `(,(FUNCTION FB.STARTUP) ',BROWSER @@ -669,13 +687,13 @@ Your deletions are thus ignored."))) (RETURN BROWSERWINDOW)))) (FB.TABLEBROWSER - (LAMBDA (BROWSER) (* \; "Edited 4-Feb-88 23:13 by bvm:") + (LAMBDA (BROWSER) (* \; "Edited 4-Feb-88 23:13 by bvm:") (|ffetch| (FILEBROWSER TABLEBROWSER) |of| (\\DTEST BROWSER 'FILEBROWSER)))) (FB.SELECTEDFILES - (LAMBDA (BROWSER NOERRORFLG) (* \; "Edited 29-Jan-88 12:38 by bvm") + (LAMBDA (BROWSER NOERRORFLG) (* \; "Edited 29-Jan-88 12:38 by bvm") - (* |;;| "User entry to get the set of selected files, as tableitems, from a filebrowser. If NOERRORFLG is NIL, will print a message if no files are selected.") + (* |;;| "User entry to get the set of selected files, as tableitems, from a filebrowser. If NOERRORFLG is NIL, will print a message if no files are selected.") (COND ((TB.COLLECT.ITEMS (|ffetch| (FILEBROWSER TABLEBROWSER) |of| (\\DTEST BROWSER @@ -686,31 +704,32 @@ Your deletions are thus ignored."))) NIL)))) (FB.FETCHFILENAME - (LAMBDA (ITEM) (* \; "Edited 29-Jan-88 12:37 by bvm") + (LAMBDA (ITEM) (* \; "Edited 29-Jan-88 12:37 by bvm") - (* |;;| "User entry to get filename from a browser tableitem.") + (* |;;| "User entry to get filename from a browser tableitem.") (|fetch| (FBFILEDATA FILENAME) |of| (|ffetch| TIDATA |of| (\\DTEST ITEM 'TABLEITEM))))) (FB.DIRECTORYP - (LAMBDA (FILE) (* \; "Edited 20-Feb-2021 20:05 by rmk:") + (LAMBDA (FILE) (* \; + "Edited 20-Feb-2021 20:05 by rmk:") - (* |;;| "Does FILE denote a directory?") + (* |;;| "Does FILE denote a directory?") (CL:WHEN (TYPE? TABLEITEM FILE) (SETQ FILE (FETCH TIDATA OF FILE))) (|fetch| (FBFILEDATA DIRECTORYFILEP) |of| FILE))) (FB.PROMPTWPRINT - (LAMBDA U (* \; "Edited 4-Feb-88 23:08 by bvm:") + (LAMBDA U (* \; "Edited 4-Feb-88 23:08 by bvm:") (COND ((< U 2) (ERROR "not enough args to PROMPTWPRINT")) (T (LET ((WINDOW (|ffetch| (FILEBROWSER PROMPTWINDOW) |of| (\\DTEST (ARG U 1) 'FILEBROWSER))) - THING) (* \; - "CAR is window, CDR is height in lines") + THING) (* \; + "CAR is window, CDR is height in lines") (|for| ITEM |from| 2 |to| U |do| (SELECTQ (SETQ THING (ARG U ITEM)) (T (TERPRI WINDOW)) (CLEAR (CLEARW WINDOW)) @@ -718,24 +737,24 @@ Your deletions are thus ignored."))) (PRIN1 THING WINDOW)))))))) (FB.PROMPTW.FORMAT - (CL:LAMBDA (BROWSER FORMAT-STRING &REST ARGS) (* \; "Edited 4-Feb-88 23:15 by bvm:") + (CL:LAMBDA (BROWSER FORMAT-STRING &REST ARGS) (* \; "Edited 4-Feb-88 23:15 by bvm:") - (* |;;| "Outputs to FOLDER's prompt window using FORMAT.") + (* |;;| "Outputs to FOLDER's prompt window using FORMAT.") (LET ((*PRINT-CASE* :UPCASE) (*PRINT-BASE* 10) (WINDOW (|ffetch| (FILEBROWSER PROMPTWINDOW) |of| (\\DTEST BROWSER 'FILEBROWSER)))) - (* |;;| "*PRINT-CASE* is bound so symbols get printed in \"expected\" case. *PRINT-BASE* is 10 for benefit of printing numbers in the non-format case.") + (* |;;| "*PRINT-CASE* is bound so symbols get printed in \"expected\" case. *PRINT-BASE* is 10 for benefit of printing numbers in the non-format case.") (CL:APPLY (FUNCTION CL:FORMAT) WINDOW FORMAT-STRING ARGS)))) (FB.PROMPTFORINPUT - (LAMBDA (PROMPT DEFAULT BROWSER ABORTFLG DONTCLEAR) (* \; "Edited 22-Nov-88 15:33 by bvm") + (LAMBDA (PROMPT DEFAULT BROWSER ABORTFLG DONTCLEAR) (* \; "Edited 22-Nov-88 15:33 by bvm") -(* |;;;| "Prompt for input for browser BROWSER with question PROMPT offering default answer DEFAULT. If ABORTFLG is true and response is NIL, prints '... aborted'") +(* |;;;| "Prompt for input for browser BROWSER with question PROMPT offering default answer DEFAULT. If ABORTFLG is true and response is NIL, prints '... aborted'") (LET* ((PWINDOW (|ffetch| (FILEBROWSER PROMPTWINDOW) |of| (\\DTEST BROWSER 'FILEBROWSER))) @@ -750,7 +769,7 @@ Your deletions are thus ignored."))) PWINDOW)) WINDOWWIDTH) - (* |;;| "Prompt plus default response will overflow the width of the window, so be a nice guy and break it up") + (* |;;| "Prompt plus default response will overflow the width of the window, so be a nice guy and break it up") (|for| I |from| (- (NCHARS PROMPT) 4) |to| 10 |by| -1 @@ -765,8 +784,8 @@ Your deletions are thus ignored."))) (SUBSTRING PROMPT (ADD1 I)))))))) (SETQ RESULT (CAR (NLSETQ (TTYINPROMPTFORWORD PROMPT DEFAULT NIL PWINDOW NIL 'TTY (CHARCODE (CR)))))) - (WINDOWPROP PWINDOW 'PROCESS NIL) (* \; - "Get rid of process from prompt window") + (WINDOWPROP PWINDOW 'PROCESS NIL) (* \; + "Get rid of process from prompt window") (COND ((AND (NULL RESULT) ABORTFLG) @@ -775,10 +794,10 @@ Your deletions are thus ignored."))) RESULT))) (FB.YES-OR-NO-P - (LAMBDA (PROMPT FBROWSER DEFAULT) (* \; "Edited 22-Nov-88 15:30 by bvm") + (LAMBDA (PROMPT FBROWSER DEFAULT) (* \; "Edited 22-Nov-88 15:30 by bvm") - (* |;;| - "Return Y, N or NIL, indicating whether response to question is Yes, No or some kind of abort") + (* |;;| + "Return Y, N or NIL, indicating whether response to question is Yes, No or some kind of abort") (LET ((ANSWER (FB.PROMPTFORINPUT PROMPT (SELECTQ DEFAULT (Y "Yes") @@ -786,7 +805,7 @@ Your deletions are thus ignored."))) NIL) FBROWSER T T))) (COND - ((NULL ANSWER) (* \; "Aborted") + ((NULL ANSWER) (* \; "Aborted") NIL) ((OR (STRING-EQUAL ANSWER "YES") (STRING-EQUAL ANSWER "Y")) @@ -795,13 +814,13 @@ Your deletions are thus ignored."))) (STRING-EQUAL ANSWER "N")) 'N) (T (FB.PROMPTWPRINT FBROWSER "?? ...Aborted.") - (* \; "Confused somehow") + (* \; "Confused somehow") NIL))))) (FB.ALLOW.ABORT - (LAMBDA (BROWSER) (* \; "Edited 4-Feb-88 23:11 by bvm:") + (LAMBDA (BROWSER) (* \; "Edited 4-Feb-88 23:11 by bvm:") - (* |;;| "Arranges that this browser have an abort button armed. Must be called underneath a FileBrowser command, so that the cleanup in fb.make.browser.busy is enabled.") + (* |;;| "Arranges that this browser have an abort button armed. Must be called underneath a FileBrowser command, so that the cleanup in fb.make.browser.busy is enabled.") (|freplace| (FILEBROWSER UPDATEPROC) |of| (\\DTEST BROWSER 'FILEBROWSER) |with| (THIS.PROCESS)) @@ -809,13 +828,13 @@ Your deletions are thus ignored."))) (|if| (NOT (OPENWP (CAR W))) |then| (ATTACHWINDOW (CAR W) (CDR W) - 'BOTTOM) (* \; - "And repaint it in case it was used last time") + 'BOTTOM) (* \; + "And repaint it in case it was used last time") (REDISPLAYW (CAR W)))))) (\\FB.HARDCOPY.TOFILE.EXTENSION - (LAMBDA NIL (* \; - "Edited 25-Feb-91 15:15 by gadener") + (LAMBDA NIL (* \; + "Edited 25-Feb-91 15:15 by gadener") (LET ((TYPE (PRINTERTYPE))) (CASE TYPE (INTERPRESS 'IP) @@ -830,9 +849,9 @@ Your deletions are thus ignored."))) (DEFINEQ (FB.STARTUP - (LAMBDA (BROWSER COMMANDMENU FN) (* \; "Edited 21-Jan-88 17:53 by bvm") + (LAMBDA (BROWSER COMMANDMENU FN) (* \; "Edited 21-Jan-88 17:53 by bvm") - (* |;;| "Apply FN to browser with Recompute grayed out.") + (* |;;| "Apply FN to browser with Recompute grayed out.") (RESETLST (FB.MAKE.BROWSER.BUSY BROWSER (FASSOC '|Recompute| (|fetch| (MENU ITEMS) |of| @@ -842,9 +861,9 @@ Your deletions are thus ignored."))) (CL:FUNCALL FN BROWSER)))) (FB.MAKERIGIDWINDOW - (LAMBDA (WINDOW) (* |bvm:| "22-Jul-85 16:14") + (LAMBDA (WINDOW) (* |bvm:| "22-Jul-85 16:14") -(* |;;;| "make the argument window immutable w/r/to attachedwindow package") +(* |;;;| "make the argument window immutable w/r/to attachedwindow package") (LET ((HEIGHT (|fetch| (REGION HEIGHT) |of| (WINDOWPROP WINDOW 'REGION)))) (WINDOWPROP WINDOW 'MINSIZE (CONS 0 HEIGHT)) @@ -854,7 +873,7 @@ Your deletions are thus ignored."))) (DEFINEQ (FB.PRINTFN - (LAMBDA (TBROWSER ITEM WINDOW) (* \; "Edited 30-Aug-94 19:12 by jds") + (LAMBDA (TBROWSER ITEM WINDOW) (* \; "Edited 30-Aug-94 19:12 by jds") (LET ((FBROWSER (TB.USERDATA TBROWSER)) (FDATA (|fetch| TIDATA |of| ITEM)) (STREAM (WINDOWPROP WINDOW 'DSP)) @@ -871,19 +890,19 @@ Your deletions are thus ignored."))) (END (+ OFF (|ffetch| (STRINGP LENGTH) |of| FILENAME))) C) - (* |;;| "This loop is a performance optimization so I don't have to cons up a substring in the display loop. This is essentially (for c instring (fetch (fbfiledata filename) of fdata) do (\\outchar stream c)), except that I want to start at STARTOFPNAME rather than 1.") + (* |;;| "This loop is a performance optimization so I don't have to cons up a substring in the display loop. This is essentially (for c instring (fetch (fbfiledata filename) of fdata) do (\\outchar stream c)), except that I want to start at STARTOFPNAME rather than 1.") - (* |;;| "Slow version: (prin3 (fetch (fbfiledata printname) of fdata) stream), except it doesn't let me intercept cr's.") + (* |;;| "Slow version: (prin3 (fetch (fbfiledata printname) of fdata) stream), except it doesn't let me intercept cr's.") (|add| OFF (- (|fetch| (FBFILEDATA STARTOFPNAME) |of| FDATA) - 2)) (* \; "Skip to start of name to print") + 2)) (* \; "Skip to start of name to print") (|while| (< (|add| OFF 1) END) |do| (SETQ C (COND (FATP (\\GETBASEFAT BASE OFF)) (T (\\GETBASETHIN BASE OFF)))) (\\OUTCHAR STREAM (|if| (EQ C (CHARCODE CR)) |then| - (* \; "make it a blotch instead of new line #o377 is in char set 0, but is an illegal char, so can't have a glyph") + (* \; "make it a blotch instead of new line #o377 is in char set 0, but is an illegal char, so can't have a glyph") 255 |else| C)))) (SETQ NEXTPOS (|fetch| (FILEBROWSER INFOSTART) |of| FBROWSER)) @@ -892,28 +911,28 @@ Your deletions are thus ignored."))) |bind| (FONT _ (|fetch| (FILEBROWSER BROWSERFONT) |of| FBROWSER)) FORMAT ACTUALNEXT XPOS |do| (COND - (INFO (* \; - "Make sure there's always some space before next item") + (INFO (* \; + "Make sure there's always some space before next item") (PRIN3 " " STREAM))) (SETQ XPOS (DSPXPOSITION NIL STREAM)) (SETQ FORMAT (|fetch| (INFOFIELD INFOFORMAT) |of| SPEC)) (SETQ ACTUALNEXT (COND ((AND (LISTP FORMAT) - (FIXP INFO)) (* \; - "Get numbers to line up right justified") + (FIXP INFO)) (* \; + "Get numbers to line up right justified") (IMAX (- (+ NEXTPOS (CADR FORMAT)) (STRINGWIDTH INFO FONT)) XPOS)) - (T (* \; - "All other fields are left-justified") + (T (* \; + "All other fields are left-justified") NEXTPOS))) (COND - ((< XPOS ACTUALNEXT) (* \; - "Clear any previous junk between last position and start of field") + ((< XPOS ACTUALNEXT) (* \; + "Clear any previous junk between last position and start of field") (|if| (AND INFO (EQ FORMAT 'DATE) (EQ (CHCON1 INFO) (CHARCODE SPACE))) - |then| (* \; "Small nicety for variable-width font: account for the difference between a space and a digit, so that dates line up a little better") + |then| (* \; "Small nicety for variable-width font: account for the difference between a space and a digit, so that dates line up a little better") (|add| ACTUALNEXT (- (CHARWIDTH (CHARCODE 9) FONT) (CHARWIDTH (CHARCODE SPACE) @@ -927,7 +946,7 @@ Your deletions are thus ignored."))) (AND OLDFONT (DSPFONT OLDFONT STREAM))))) (FB.COPYFN - (LAMBDA (TBROWSER ITEM) (* |bvm:| "13-Oct-85 17:44") + (LAMBDA (TBROWSER ITEM) (* |bvm:| "13-Oct-85 17:44") (BKSYSBUF (|fetch| (FBFILEDATA FILENAME) |of| (|fetch| TIDATA |of| ITEM))))) ) @@ -938,7 +957,7 @@ Your deletions are thus ignored."))) (DEFINEQ (FB.MENU.WHENSELECTEDFN - (LAMBDA (ITEM MENU KEY) (* \; "Edited 21-Jan-88 11:40 by bvm") + (LAMBDA (ITEM MENU KEY) (* \; "Edited 21-Jan-88 11:40 by bvm") (ADD.PROCESS `(,(FUNCTION FB.COMMANDSELECTEDFN) ',ITEM ',MENU @@ -949,7 +968,7 @@ Your deletions are thus ignored."))) 'DON\'T))) (FB.COMMANDSELECTEDFN - (LAMBDA (ITEM MENU KEY) (* \; "Edited 12-Jan-87 12:57 by bvm:") + (LAMBDA (ITEM MENU KEY) (* \; "Edited 12-Jan-87 12:57 by bvm:") (RESETLST (LET* ((REALITEM ITEM) (WINDOW (WINDOWPROP (WFROMMENU MENU) @@ -957,7 +976,7 @@ Your deletions are thus ignored."))) (FBROWSER (WINDOWPROP WINDOW 'FILEBROWSER))) (COND ((NOT (MEMBER ITEM (|fetch| (MENU ITEMS) |of| MENU))) - (* \; "A subitem -- fetch main item") + (* \; "A subitem -- fetch main item") (SETQ ITEM (|for| I |in| (|fetch| (MENU ITEMS) |of| MENU) |thereis| (FB.SUBITEMP ITEM I))))) (COND @@ -973,26 +992,29 @@ Your deletions are thus ignored."))) (SETQ EXTRA (CADR FN)) (SETQ FN (CAR FN)))) (CL:FUNCALL FN FBROWSER KEY REALITEM MENU EXTRA))) - (T (* \; -"Used to be (FB.PROMPTWPRINT WINDOW 'This filebrowser is busy') but that trashes the prompt window") + (T (* \; +"Used to be (FB.PROMPTWPRINT WINDOW 'This filebrowser is busy') but that trashes the prompt window") (FLASHWINDOW WINDOW))))))) (FB.SUBITEMP - (LAMBDA (SUBITEM ITEM) (* |bvm:| "22-Jul-85 15:08") + (LAMBDA (SUBITEM ITEM) (* \; + "Edited 2-Dec-2021 19:05 by larry") + (* |bvm:| "22-Jul-85 15:08") -(* |;;;| "True if SUBITEM appears among the subitems of ITEM or descendents") +(* |;;;| "True if SUBITEM appears among the subitems of ITEM or descendents") - (LET ((SUB (CADDDR ITEM))) - (AND SUB (EQ (CAR (LISTP SUB)) - 'SUBITEMS) - (OR (MEMBER SUBITEM SUB) - (|for| I |in| (CDR SUB) |thereis| (FB.SUBITEMP SUBITEM I))))))) + (LET ((SI (CADDDR ITEM))) + (AND SI (EQ (CAR (LISTP SI)) + 'SUBITEMS) + (OR (MEMBER SUBITEM SI) + (|for| I |in| (CDR SI) |thereis| (FB.SUBITEMP SUBITEM I))))))) (FB.MAKE.BROWSER.BUSY - (LAMBDA (BROWSER ITEM MENU DONTWAIT) (* \; "Edited 27-Feb-2021 19:21 by rmk:") - (* \; "Edited 1-Feb-88 16:43 by bvm:") + (LAMBDA (BROWSER ITEM MENU DONTWAIT) (* \; + "Edited 27-Feb-2021 19:21 by rmk:") + (* \; "Edited 1-Feb-88 16:43 by bvm:") -(* |;;;| "Makes browser 'busy' doing ITEM of MENU. Must be called under RESETLST") +(* |;;;| "Makes browser 'busy' doing ITEM of MENU. Must be called under RESETLST") (COND ((OBTAIN.MONITORLOCK (|fetch| (FILEBROWSER FBLOCK) |of| BROWSER) @@ -1005,21 +1027,22 @@ Your deletions are thus ignored."))) T)))) (FB.FINISH.COMMAND - (LAMBDA (BROWSER ITEM MENU) (* \; "Edited 27-Feb-2021 19:52 by rmk:") - (* \; "Edited 1-Feb-88 16:34 by bvm:") + (LAMBDA (BROWSER ITEM MENU) (* \; + "Edited 27-Feb-2021 19:52 by rmk:") + (* \; "Edited 1-Feb-88 16:34 by bvm:") - (* |;;| "Cleanup after generic command on BROWSER. ITEM and MENU (optional) specify the shaded item. This is called under a RESETLST by anyone calling FB.MAKE.BROWSER.BUSY, but needs to be called explicitly by anyone who closes/shrinks the window before that cleanup would happen.") + (* |;;| "Cleanup after generic command on BROWSER. ITEM and MENU (optional) specify the shaded item. This is called under a RESETLST by anyone calling FB.MAKE.BROWSER.BUSY, but needs to be called explicitly by anyone who closes/shrinks the window before that cleanup would happen.") (|replace| (FILEBROWSER UPDATEPROC) |of| BROWSER |with| NIL) (|replace| (FILEBROWSER ABORTING) |of| BROWSER |with| NIL) - (* |;;| "RMK: Don't reshade the item if it isn't needed. This will prevent the FB window from popping on top of any windows that the menu command created (SEE, EDIT), if they clear it before they open their windows.") + (* |;;| "RMK: Don't reshade the item if it isn't needed. This will prevent the FB window from popping on top of any windows that the menu command created (SEE, EDIT), if they clear it before they open their windows.") (LET ((W (CAR (|fetch| (FILEBROWSER ABORTWINDOW) |of| BROWSER))) M) (|if| (OPENWP W) - |then| (* \; - "Take down the abort button if there was one") + |then| (* \; + "Take down the abort button if there was one") (DETACHWINDOW W) (SHADEITEM (CAR (|fetch| (MENU ITEMS) |of| (SETQ M (CAR (WINDOWPROP W @@ -1034,9 +1057,9 @@ Your deletions are thus ignored."))) (RESETSTATE (FB.PROMPTWPRINT BROWSER "...command aborted."))))) (FB.HANDLE.ABORT.BUTTON - (LAMBDA (ITEM MENU) (* \; "Edited 27-Jan-88 23:38 by bvm") + (LAMBDA (ITEM MENU) (* \; "Edited 27-Jan-88 23:38 by bvm") - (* |;;| "Called when the ABORT button on a Filebrowser is pressed.") + (* |;;| "Called when the ABORT button on a Filebrowser is pressed.") (LET ((BROWSER (WINDOWPROP (MAINWINDOW (WFROMMENU MENU) T) @@ -1045,8 +1068,8 @@ Your deletions are thus ignored."))) (|if| (AND BROWSER (SETQ PROC (|fetch| (FILEBROWSER UPDATEPROC) |of| BROWSER )) (NOT (|fetch| (FILEBROWSER ABORTING) |of| BROWSER))) - |then| (* \; - "We're connected to a browser, there's a process running, and it's not already aborting") + |then| (* \; + "We're connected to a browser, there's a process running, and it's not already aborting") (SHADEITEM ITEM MENU FB.ITEMSELECTEDSHADE) (|replace| (FILEBROWSER ABORTING) |of| BROWSER |with| T) (DEL.PROCESS PROC))))) @@ -1054,14 +1077,14 @@ Your deletions are thus ignored."))) (DEFINEQ (FB.DELETECOMMAND - (LAMBDA (BROWSER) (* |bvm:| "12-Sep-85 15:44") + (LAMBDA (BROWSER) (* |bvm:| "12-Sep-85 15:44") (TB.MAP.SELECTED.ITEMS (|fetch| (FILEBROWSER TABLEBROWSER) |of| BROWSER) (FUNCTION FB.DELETE.FILE)) (FB.UPDATE.COUNTERS BROWSER))) (FB.DELVERCOMMAND - (LAMBDA (FBROWSER) (* \; - "Edited 15-Feb-91 17:19 by gadener") + (LAMBDA (FBROWSER) (* \; + "Edited 15-Feb-91 17:19 by gadener") (LET (NVERSIONS TBROWSER NDELETED FILES) (|if| (EQ (SETQ NVERSIONS (MENU (|create| MENU @@ -1082,7 +1105,7 @@ Your deletions are thus ignored."))) TABLEBROWSER) |of| FBROWSER)) (FUNCTION (LAMBDA (BROWSER ITEM) - (* \; "Collect everything that is not a directory item and that has an actual version (to avoid unix lossage)") + (* \; "Collect everything that is not a directory item and that has an actual version (to avoid unix lossage)") (AND (NOT (|fetch| TIUNSELECTABLE |of| ITEM)) (NOT (NULL.VERSIONP (|fetch| (FBFILEDATA VERSION) @@ -1094,10 +1117,10 @@ Your deletions are thus ignored."))) (SELECTQ (|fetch| (FILEBROWSER SORTBY) |of| FBROWSER ) (FB.NAMES.DECREASING.VERSION - (* \; "Just right") + (* \; "Just right") FILES) (FB.NAMES.INCREASING.VERSION - (* \; "Close, but no cigar") + (* \; "Close, but no cigar") (FB.SORT.VERSIONS FILES (FUNCTION FB.DECREASING.VERSION))) (SORT FILES (FUNCTION FB.NAMES.DECREASING.VERSION))) @@ -1106,16 +1129,16 @@ Your deletions are thus ignored."))) (FB.PROMPTW.FORMAT FBROWSER "~%Done, ~D files marked for deletion." NDELETED)))))) (FB.IS.NOT.SUBDIRECTORY.ITEM - (LAMBDA (BROWSER ITEM) (* |bvm:| "13-Oct-85 16:51") + (LAMBDA (BROWSER ITEM) (* |bvm:| "13-Oct-85 16:51") (NOT (|fetch| TIUNSELECTABLE |of| ITEM)))) (FB.DELVER.FILES - (LAMBDA (TBROWSER FILES NVERSIONS) (* |bvm:| "15-Oct-85 00:20") + (LAMBDA (TBROWSER FILES NVERSIONS) (* |bvm:| "15-Oct-85 00:20") (|for| FILE |in| FILES |bind| (\#DELETED _ 0) (\#SEENSOFAR _ 0) THISNAME LASTNAME - |do| (* \; - "Files now all lined up, decreasing version. Just pass by NVERSIONS of each file") + |do| (* \; + "Files now all lined up, decreasing version. Just pass by NVERSIONS of each file") (COND ((STRING-EQUAL (SETQ THISNAME (|fetch| (FBFILEDATA VERSIONLESSNAME) |of| (|fetch| TIDATA |of| FILE))) @@ -1130,7 +1153,7 @@ Your deletions are thus ignored."))) (SETQ \#SEENSOFAR 1))) |finally| (RETURN \#DELETED)))) (FB.DELETE.FILE - (LAMBDA (TBROWSER ITEM) (* |bvm:| "13-Oct-85 17:44") + (LAMBDA (TBROWSER ITEM) (* |bvm:| "13-Oct-85 17:44") (COND ((NOT (|fetch| TIDELETED |of| ITEM)) (LET ((FBROWSER (TB.USERDATA TBROWSER)) @@ -1148,19 +1171,19 @@ Your deletions are thus ignored."))) (DEFINEQ (FB.UNDELETECOMMAND - (LAMBDA (BROWSER) (* |bvm:| "12-Sep-85 15:44") + (LAMBDA (BROWSER) (* |bvm:| "12-Sep-85 15:44") (TB.MAP.SELECTED.ITEMS (|fetch| (FILEBROWSER TABLEBROWSER) |of| BROWSER) (FUNCTION FB.UNDELETE.FILE)) (FB.UPDATE.COUNTERS BROWSER))) (FB.UNDELETEALLCOMMAND - (LAMBDA (BROWSER) (* |bvm:| "18-Sep-85 12:20") + (LAMBDA (BROWSER) (* |bvm:| "18-Sep-85 12:20") (TB.MAP.ITEMS (|fetch| (FILEBROWSER TABLEBROWSER) |of| BROWSER) (FUNCTION FB.UNDELETE.FILE)) (FB.UPDATE.COUNTERS BROWSER))) (FB.UNDELETE.FILE - (LAMBDA (TBROWSER ITEM) (* |bvm:| "13-Oct-85 17:44") + (LAMBDA (TBROWSER ITEM) (* |bvm:| "13-Oct-85 17:44") (COND ((|fetch| TIDELETED |of| ITEM) (LET ((FBROWSER (TB.USERDATA TBROWSER)) @@ -1177,17 +1200,17 @@ Your deletions are thus ignored."))) (DEFINEQ (FB.COPYCOMMAND - (LAMBDA (BROWSER) (* \; - "Edited 19-Oct-90 17:44 by gadener") + (LAMBDA (BROWSER) (* \; + "Edited 19-Oct-90 17:44 by gadener") (FB.COPY/RENAME.COMMAND BROWSER '|Copy| (CONS (FUNCTION COPYFILE))))) (FB.RENAMECOMMAND - (LAMBDA (BROWSER) (* \; - "Edited 19-Oct-90 18:57 by gadener") + (LAMBDA (BROWSER) (* \; + "Edited 19-Oct-90 18:57 by gadener") (FB.COPY/RENAME.COMMAND BROWSER '|Rename| (CONS (FUNCTION RENAMEFILE))))) (FB.COPY/RENAME.COMMAND - (LAMBDA (FBROWSER CMD MOVEFN) (* \; "Edited 28-Jan-88 00:27 by bvm") + (LAMBDA (FBROWSER CMD MOVEFN) (* \; "Edited 28-Jan-88 00:27 by bvm") (LET ((*UPPER-CASE-FILE-NAMES* NIL) (FILELIST (FB.SELECTEDFILES FBROWSER))) (|if| FILELIST @@ -1195,7 +1218,7 @@ Your deletions are thus ignored."))) (COND ((CDR FILELIST) (FB.COPY/RENAME.MANY FBROWSER FILELIST CMD MOVEFN)) - (T (* \; "Just one file") + (T (* \; "Just one file") (LET* ((OLDNAME (FB.FETCHFILENAME (CAR FILELIST))) (NEWNAME (FB.GET.NEW.FILE.SPEC OLDNAME FBROWSER CMD))) (COND @@ -1203,11 +1226,11 @@ Your deletions are thus ignored."))) OLDNAME NEWNAME CMD MOVEFN)))))))))) (FB.COPY/RENAME.ONE - (LAMBDA (FBROWSER ITEM OLDNAME NEWNAME CMD MOVEFN) (* \; - "Edited 19-Oct-90 17:50 by gadener") + (LAMBDA (FBROWSER ITEM OLDNAME NEWNAME CMD MOVEFN) (* \; + "Edited 19-Oct-90 17:50 by gadener") -(* |;;;| -"Copies or renames a single file ITEM from OLDNAME to NEWNAME and updates browser accordingly") +(* |;;;| +"Copies or renames a single file ITEM from OLDNAME to NEWNAME and updates browser accordingly") (CL:MULTIPLE-VALUE-BIND (ACTUALNEWNAME CONDITION) (IGNORE-ERRORS (CL:FUNCALL (CAR MOVEFN) @@ -1231,8 +1254,8 @@ Your deletions are thus ignored."))) (T 'TOTAL)))))) (COND ((FB.MAYBE.INSERT.FILE FBROWSER ACTUALNEWNAME ITEM CMD) - (* \; - "ACTUALNEWNAME belongs in this browser, so TOTAL may have changed") + (* \; + "ACTUALNEWNAME belongs in this browser, so TOTAL may have changed") (OR CHANGETYPE (SETQ CHANGETYPE 'TOTAL)))) (COND (CHANGETYPE (FB.UPDATE.COUNTERS FBROWSER CHANGETYPE))))) @@ -1243,7 +1266,7 @@ Your deletions are thus ignored."))) (OR CONDITION NEWNAME))))))) (FB.COPY/RENAME.MANY - (LAMBDA (FBROWSER FILELIST CMD MOVEFN) (* \; "Edited 22-Jan-94 20:24 by ") + (LAMBDA (FBROWSER FILELIST CMD MOVEFN) (* \; "Edited 22-Jan-94 20:24 by ") (PROG (PREFIX OLDNAME FIELDS SUBDIR FIRSTDATA RETAIN HOST DIR DEVICE) (COND ((NULL (SETQ PREFIX (FB.PROMPTFORINPUT (CONCAT CMD " " (LENGTH FILELIST) @@ -1251,7 +1274,7 @@ Your deletions are thus ignored."))) (OR (|fetch| (FILEBROWSER DEFAULTDIR) |of| FBROWSER) (DIRECTORYNAME T)) - FBROWSER T))) (* \; "Aborted") + FBROWSER T))) (* \; "Aborted") ) ((STRPOS "*" PREFIX) (FB.PROMPTWPRINT FBROWSER "Sorry, patterns not supported")) @@ -1261,8 +1284,8 @@ Your deletions are thus ignored."))) (LISTGET FIELDS 'DEVICE)) (OR (LISTGET FIELDS 'NAME) (LISTGET FIELDS 'EXTENSION) - (LISTGET FIELDS 'VERSION))) (* \; - "Not a pure directory specification, and not just a simple directory name") + (LISTGET FIELDS 'VERSION))) (* \; + "Not a pure directory specification, and not just a simple directory name") (FB.PROMPTWPRINT FBROWSER "Not a well-formed directory specification.")) ((SETQ PREFIX (FB.CANONICAL.DIRECTORY (\\ADD.CONNECTED.DIR PREFIX) FBROWSER CMD)) @@ -1273,7 +1296,7 @@ Your deletions are thus ignored."))) (SETQ DEVICE (LISTGET FIELDS 'DEVICE)) (|replace| (FILEBROWSER DEFAULTDIR) |of| FBROWSER |with| PREFIX) - (* |;;| "First scan to see if the files are in multiple subdirectories, since then it's unclear how the new files should be named.") + (* |;;| "First scan to see if the files are in multiple subdirectories, since then it's unclear how the new files should be named.") (SETQ FIRSTDATA (|fetch| TIDATA |of| (CAR FILELIST))) (COND @@ -1303,17 +1326,17 @@ Your deletions are thus ignored."))) "?") FBROWSER 'Y) - (NIL (* \; "Aborted") + (NIL (* \; "Aborted") (RETURN)) (Y (SETQ SUBDIR (ADD1 (NCHARS SUBDIR))) - (* \; "First character that changes") + (* \; "First character that changes") T) NIL)))) - (* |;;| "Now make sure the files are sorted by increasing version, so that multiple versions get copied in the right order") + (* |;;| "Now make sure the files are sorted by increasing version, so that multiple versions get copied in the right order") (SELECTQ (|fetch| (FILEBROWSER SORTBY) |of| FBROWSER) - (FB.NAMES.INCREASING.VERSION (* \; "Okay") + (FB.NAMES.INCREASING.VERSION (* \; "Okay") ) (FB.NAMES.DECREASING.VERSION (SETQ FILELIST (FB.SORT.VERSIONS FILELIST (FUNCTION FB.INCREASING.VERSION) @@ -1325,8 +1348,8 @@ Your deletions are thus ignored."))) (PACKFILENAME.STRING 'HOST HOST 'DEVICE DEVICE 'DIRECTORY (|if| (NOT RETAIN) |then| DIR - |else| (* \; - "Merge destination directory with subdirectory of name between common prefix and root") + |else| (* \; + "Merge destination directory with subdirectory of name between common prefix and root") (FB.MERGE.DIRECTORIES DIR (SUBSTRING OLDNAME SUBDIR (SUB1 (|fetch| (FBFILEDATA STARTOFNAME) @@ -1336,7 +1359,7 @@ Your deletions are thus ignored."))) CMD MOVEFN))))))) (FB.MERGE.DIRECTORIES - (LAMBDA (PREFIX RETAIN) (* \; "Edited 22-Jun-90 11:29 by nm") + (LAMBDA (PREFIX RETAIN) (* \; "Edited 22-Jun-90 11:29 by nm") (COND (PREFIX (|if| RETAIN |then| (CONCAT PREFIX (CL:SECOND \\FILENAME.SYNTAX) @@ -1347,30 +1370,30 @@ Your deletions are thus ignored."))) |else| NIL))))) (FB.GREATEST.PREFIX - (LAMBDA (DIR FILENAME) (* \; "Edited 25-Jan-88 16:37 by bvm") + (LAMBDA (DIR FILENAME) (* \; "Edited 25-Jan-88 16:37 by bvm") -(* |;;;| "Greatest common directory prefix of DIR and FILENAME") +(* |;;;| "Greatest common directory prefix of DIR and FILENAME") (AND DIR FILENAME (COND ((STRPOS DIR FILENAME 1 NIL T NIL UPPERCASEARRAY) - (* \; "DIR is prefix of FILENAME") + (* \; "DIR is prefix of FILENAME") DIR) (T (|for| I |from| 1 |bind| LASTDIR C |do| (|if| (OR (NULL (SETQ C (NTHCHARCODE DIR I))) (NEQ C (NTHCHARCODE FILENAME I))) - |then| (* \; "Came to end of DIR or a non-matching character. Return the substring of DIR up to the last directory delimiter we saw.") + |then| (* \; "Came to end of DIR or a non-matching character. Return the substring of DIR up to the last directory delimiter we saw.") (RETURN (AND LASTDIR (SUBSTRING DIR 1 LASTDIR))) |else| (SELCHARQ C ((/ >) - (* \; "end of a subdirectory") + (* \; "end of a subdirectory") (SETQ LASTDIR I)) NIL)))))))) (FB.MAYBE.INSERT.FILE - (LAMBDA (FBROWSER NEWNAME OLDITEM CMD) (* \; - "Edited 19-Oct-90 12:32 by gadener") + (LAMBDA (FBROWSER NEWNAME OLDITEM CMD) (* \; + "Edited 19-Oct-90 12:32 by gadener") -(* |;;;| "If NEWNAME matches the pattern of files displayed in FBROWSER, insert it in that browser and return T. OLDITEM is the tableitem that formed the source of NEWNAME. CMD is the command that created NEWNAME -- Copy or Rename") +(* |;;;| "If NEWNAME matches the pattern of files displayed in FBROWSER, insert it in that browser and return T. OLDITEM is the tableitem that formed the source of NEWNAME. CMD is the command that created NEWNAME -- Copy or Rename") (LET ((*UPPER-CASE-FILE-NAMES* NIL) FILEINFO N FULLNAME CRDATE CRDATE2 VERSION NEWDATA NEWITEM FILE-UNCERTAIN) @@ -1378,26 +1401,26 @@ Your deletions are thus ignored."))) ((AND (DIRECTORY.MATCH (|fetch| (FILEBROWSER PREPAREDPATTERN) |of| FBROWSER) NEWNAME) - (* |;;| - "Need to check that at least the FB pattern is not longer than the NEWNAME") + (* |;;| + "Need to check that at least the FB pattern is not longer than the NEWNAME") (GEQ (NCHARS NEWNAME) (SETQ N (SUB1 (|fetch| (FILEBROWSER DIRECTORYSTART) |of| FBROWSER) ))) - (* |;;| - "Checks for match up to where the directory part start. i.e. the host part") + (* |;;| + "Checks for match up to where the directory part start. i.e. the host part") (STRING-EQUAL NEWNAME (|fetch| (FILEBROWSER PATTERN) |of| FBROWSER) :END1 N :END2 N)) - (* |;;| - "NEWNAME belongs in this browser, so add it. First create some attributes for it") + (* |;;| + "NEWNAME belongs in this browser, so add it. First create some attributes for it") (SETQ NEWDATA (FB.CREATE.FILEBUCKET FBROWSER NEWNAME (SETQ FILEINFO (COND - (OLDITEM (* \; - "Info from old item will do for starters") + (OLDITEM (* \; + "Info from old item will do for starters") (APPEND (|fetch| (FBFILEDATA FILEINFO) |of| (|fetch| TIDATA |of| OLDITEM))) @@ -1411,14 +1434,14 @@ Your deletions are thus ignored."))) (COND ((NULL.VERSIONP (|fetch| (FBFILEDATA VERSION) |of| NEWDATA)) - (* |;;| "Grumble. IFS version of Rename does not return a full file name, due to shortcoming in ftp protocol, so we won't know the version. Best we can do is assume that it's the newest version. If creation date of old file is available, verify that they agree") + (* |;;| "Grumble. IFS version of Rename does not return a full file name, due to shortcoming in ftp protocol, so we won't know the version. Best we can do is assume that it's the newest version. If creation date of old file is available, verify that they agree") (|if| (NULL (SETQ FULLNAME (INFILEP NEWNAME))) - |then| (* \; "Can't find file?") + |then| (* \; "Can't find file?") (SETQ FILE-UNCERTAIN T) |elseif| (NULL (SETQ VERSION (UNPACKFILENAME.STRING FULLNAME 'VERSION NIL 'TENEX))) - |then| (* \; "Was versionless file after all, say Unix. Nothing to do. Pass TENEX as ostype because we know the name was in canonical form from device, and don't want periods turned spuriously into semi-colons") + |then| (* \; "Was versionless file after all, say Unix. Nothing to do. Pass TENEX as ostype because we know the name was in canonical form from device, and don't want periods turned spuriously into semi-colons") |elseif| (OR (NULL (SETQ CRDATE (CL:POSITION 'CREATIONDATE (|fetch| (FILEBROWSER INFODISPLAYED) @@ -1429,12 +1452,12 @@ Your deletions are thus ignored."))) (AND (SETQ CRDATE (IDATE CRDATE)) (SETQ CRDATE2 (GETFILEINFO FULLNAME 'ICREATIONDATE)) (= CRDATE2 CRDATE))) - |then| (* \; - "Assume we're right about it being newest version") + |then| (* \; + "Assume we're right about it being newest version") (SETQ NEWDATA (FB.CREATE.FILEBUCKET FBROWSER (SETQ NEWNAME (PROGN - (* \; - "Canonicalize NEWNAME -- some cases where final period was left out") + (* \; + "Canonicalize NEWNAME -- some cases where final period was left out") (PACKFILENAME.STRING 'BODY NEWNAME 'EXTENSION "" 'VERSION VERSION))) @@ -1443,34 +1466,34 @@ Your deletions are thus ignored."))) (SETQ NEWITEM (|create| TABLEITEM TIDATA _ NEWDATA)) (|if| OLDITEM - |then| (* \; - "Update info--some is same as old file, some is new") + |then| (* \; + "Update info--some is same as old file, some is new") (|for| TAIL |on| FILEINFO |as| SPEC |in| (|fetch| (FILEBROWSER INFODISPLAYED) |of| FBROWSER) |unless| (SELECTQ (CAR SPEC) - (AUTHOR (* \; - "Rename usually preserves this, but Copy sometimes changes it") + (AUTHOR (* \; + "Rename usually preserves this, but Copy sometimes changes it") (EQ CMD '|Rename|)) ((CREATIONDATE SIZE LENGTH TYPE BYTESIZE) - (* \; "These are preserved by both copy and rename, assuming that the source and destination device are the same") + (* \; "These are preserved by both copy and rename, assuming that the source and destination device are the same") T) - (PROGN (* \; "Read and Write dates are generally changed. Also, conservatively assume that Copy/Rename could change any attribute we don't know about") + (PROGN (* \; "Read and Write dates are generally changed. Also, conservatively assume that Copy/Rename could change any attribute we don't know about") NIL)) |do| (RPLACA TAIL (AND (NOT FILE-UNCERTAIN) (GETFILEINFO NEWNAME (CAR SPEC))))) (COND ((AND (EQ CMD '|Rename|) (|fetch| TISELECTED |of| OLDITEM)) - (* \; - "If old item was selected, keep the renamed version selected as well") + (* \; + "If old item was selected, keep the renamed version selected as well") (|replace| TISELECTED |of| NEWITEM |with| T)))) (FB.INSERT.FILE FBROWSER NEWITEM) T))))) (FB.GET.NEW.FILE.SPEC - (LAMBDA (OLDNAME BROWSER CMD) (* \; "Edited 22-Nov-88 16:55 by bvm") + (LAMBDA (OLDNAME BROWSER CMD) (* \; "Edited 22-Nov-88 16:55 by bvm") - (* |;;| "For Copy and Rename commands, derives a new name to copy/rename to from OLDNAME. PREFIX if given is a DIRECTORY spec; if not given, we prompt for a destination file. Returns NIL if user aborts") + (* |;;| "For Copy and Rename commands, derives a new name to copy/rename to from OLDNAME. PREFIX if given is a DIRECTORY spec; if not given, we prompt for a destination file. Returns NIL if user aborts") (LET (NEWNAME NAMEFIELD FIELDS DIR) (COND @@ -1485,10 +1508,10 @@ Your deletions are thus ignored."))) |of| BROWSER) (DIRECTORYNAME T)) 'VERSION NIL 'BODY OLDNAME) - BROWSER T))) (* \; "Aborted") + BROWSER T))) (* \; "Aborted") NIL) ((NULL (SETQ NAMEFIELD (LISTGET (SETQ FIELDS (UNPACKFILENAME.STRING NEWNAME)) - 'NAME))) (* \; "Assume directory spec") + 'NAME))) (* \; "Assume directory spec") (SETQ NEWNAME (\\ADD.CONNECTED.DIR NEWNAME)) (|replace| (FILEBROWSER DEFAULTDIR) |of| BROWSER |with| NEWNAME) (PACKFILENAME.STRING 'DIRECTORY NEWNAME 'VERSION NIL 'BODY OLDNAME)) @@ -1496,14 +1519,14 @@ Your deletions are thus ignored."))) 0) (OR (NULL (SETQ NAMEFIELD (LISTGET FIELDS 'EXTENSION))) (EQ (NCHARS NAMEFIELD) - 0))) (* \; - "Directory spec with some more pieces after it?") + 0))) (* \; + "Directory spec with some more pieces after it?") (FB.PROMPTWPRINT BROWSER "Failed, malformed name") NIL) - (T (* \; "A plain old file name") + (T (* \; "A plain old file name") (|for| TAIL |on| FIELDS |by| (CDDR TAIL) |bind| PREVTAIL |do| (SELECTQ (CAR TAIL) - ((HOST DIRECTORY DEVICE) (* \; "Keep these") + ((HOST DIRECTORY DEVICE) (* \; "Keep these") ) (RETURN (COND ((EQ TAIL FIELDS) @@ -1524,12 +1547,12 @@ Your deletions are thus ignored."))) (\\ADD.CONNECTED.DIR NEWNAME)))))))) (FB.CANONICAL.DIRECTORY - (LAMBDA (DIRNAME FBROWSER CMD) (* \; "Edited 22-Nov-88 16:58 by bvm") + (LAMBDA (DIRNAME FBROWSER CMD) (* \; "Edited 22-Nov-88 16:58 by bvm") (LET* ((PWINDOW (|ffetch| (FILEBROWSER PROMPTWINDOW) |of| (\\DTEST FBROWSER 'FILEBROWSER))) (OLDTTYSTREAM (TTYDISPLAYSTREAM PWINDOW)) - (OLDTTYPROC (TTY.PROCESS (THIS.PROCESS)))) (* \; - "Point tty at our prompt window in case DIRECTORYNAME tries to interact") + (OLDTTYPROC (TTY.PROCESS (THIS.PROCESS)))) (* \; + "Point tty at our prompt window in case DIRECTORYNAME tries to interact") (CL:UNWIND-PROTECT (COND ((DIRECTORYNAME DIRNAME NIL 'ASK)) @@ -1546,10 +1569,10 @@ Your deletions are thus ignored."))) (DEFINEQ (FB.HARDCOPYCOMMAND - (LAMBDA (BROWSER KEY ITEM MENU OPTION) (* \; - "Edited 18-Feb-91 10:44 by gadener") + (LAMBDA (BROWSER KEY ITEM MENU OPTION) (* \; + "Edited 18-Feb-91 10:44 by gadener") -(* |;;;| "Produces hardcopy of selected files. Subcommands allow directing output to particular printer, or to a file") +(* |;;;| "Produces hardcopy of selected files. Subcommands allow directing output to particular printer, or to a file") (LET ((FILES (FB.SELECTEDFILES BROWSER)) PRINTOPTIONS) @@ -1568,10 +1591,10 @@ Your deletions are thus ignored."))) PRINTOPTIONS))))))) (FB.HARDCOPY.TOFILE - (LAMBDA (BROWSER FILES) (* \; - "Edited 15-Feb-91 17:13 by gadener") + (LAMBDA (BROWSER FILES) (* \; + "Edited 15-Feb-91 17:13 by gadener") - (* |;;| "Handle the \"Hardcopy>To File\" command. ") + (* |;;| "Handle the \"Hardcopy>To File\" command. ") (PROG ((HCOPYFILE (FB.PROMPTFORINPUT (COND ((CDR FILES) @@ -1595,7 +1618,7 @@ Your deletions are thus ignored."))) (COND ((CDR FILES) - (* |;;| "Hardcopying multiple files. Take apart the pattern so we can figure out how to make the destination names. We insist that the * be in the name.") + (* |;;| "Hardcopying multiple files. Take apart the pattern so we can figure out how to make the destination names. We insist that the * be in the name.") (COND ((|for| TAIL |on| (SETQ HCOPYFIELDS (UNPACKFILENAME.STRING HCOPYFILE)) @@ -1605,7 +1628,7 @@ Your deletions are thus ignored."))) (|if| (NEQ (CAR TAIL) 'NAME) |then| (RETURN (SETQ MSG "Only name portion can contain *") - )) (* \; "Take apart name into FORE*AFT") + )) (* \; "Take apart name into FORE*AFT") (SETQ HCOPYTAIL (CDR TAIL)) (SETQ FORE (OR (SUBSTRING (CADR TAIL) 1 @@ -1623,8 +1646,8 @@ Your deletions are thus ignored."))) (HOST (SETQ HOST (CADR TAIL))) NIL))) |finally| (|if| (AND HOST (NOT HAVEDIRECTORY)) |then| - (* \; - "E.g., {DSK}*.IP. This pattern explicitly has no directory") + (* \; + "E.g., {DSK}*.IP. This pattern explicitly has no directory") (|push| HCOPYFIELDS 'DIRECTORY NIL))) (FB.PROMPTWPRINT BROWSER "Bad pattern -- " MSG) @@ -1634,8 +1657,8 @@ Your deletions are thus ignored."))) ((AND (NULL (SETQ PRINTFILETYPE (|for| TYPE |in| PRINTFILETYPES |when| (FMEMB EXT (CADR (ASSOC 'EXTENSION (CDR TYPE)))) - |do| (* \; - "Opencoded PRINTFILETYPE.FROM.EXTENSION because that one's buggy") + |do| (* \; + "Opencoded PRINTFILETYPE.FROM.EXTENSION because that one's buggy") (RETURN (CAR TYPE))))) (NULL (SETQ PRINTFILETYPE (MENU (|MakeMenuOfImageTypes| "File type?"))))) (RETURN))) @@ -1660,7 +1683,7 @@ Your deletions are thus ignored."))) (T HCOPYFILE)))) (SETQ NAME (CL:FUNCALL FN ITEM NAME)) (COND - ((LISTP NAME) (* \; "Result is (SOURCE DESTINATION)") + ((LISTP NAME) (* \; "Result is (SOURCE DESTINATION)") (SETQ NAME (CADR NAME)))) (FB.PROMPTWPRINT BROWSER "done.") (FB.MAYBE.INSERT.FILE BROWSER NAME)) @@ -1671,8 +1694,9 @@ Your deletions are thus ignored."))) (DEFINEQ (FB.EDITCOMMAND - (LAMBDA (BROWSER KEY ITEM MENU OPTION) (* \; "Edited 27-Feb-2021 19:07 by rmk:") - (* \; "Edited 1-Feb-88 19:00 by bvm:") + (LAMBDA (BROWSER KEY ITEM MENU OPTION) (* \; + "Edited 27-Feb-2021 19:07 by rmk:") + (* \; "Edited 1-Feb-88 19:00 by bvm:") (FB.ALLOW.ABORT BROWSER) (|for| FILE |in| (FB.SELECTEDFILES BROWSER) |bind| (*UPPER-CASE-FILE-NAMES* _ NIL) @@ -1684,8 +1708,10 @@ Your deletions are thus ignored."))) ELSE (FB.FASTSEECOMMAND BROWSER KEY ITEM MENU))))) (FB.EDITCOMMAND.ONEFILE - (LAMBDA (BROWSER FILE OPTION ITEM MENU) (* \; "Edited 19-Sep-2021 18:07 by rmk:") - (* \; "Edited 27-Feb-2021 20:07 by rmk:") + (LAMBDA (BROWSER FILE OPTION ITEM MENU) (* \; + "Edited 19-Sep-2021 18:07 by rmk:") + (* \; + "Edited 27-Feb-2021 20:07 by rmk:") (* \; "Edited 1-Feb-88 19:00 by bvm:") (* |;;| "Called when we know that FILE is a file, not a directory, and that TEDIT exists. If OPTION is READONLY, we don't want to edit, just view. .") @@ -1729,8 +1755,9 @@ Your deletions are thus ignored."))) |then| (FB.PROMPTW.FORMAT BROWSER "Failed because ~A" CONDITION))))) (FB.EDITLISPFILE - (LAMBDA (FILE BROWSER) (* \; "Edited 21-Feb-2021 17:29 by rmk:") - (* \; "Edited 28-Jan-88 00:38 by bvm") + (LAMBDA (FILE BROWSER) (* \; + "Edited 21-Feb-2021 17:29 by rmk:") + (* \; "Edited 28-Jan-88 00:38 by bvm") (PROG (ROOT) (COND ((OR (NOT (STRING-EQUAL (CDAR (GETPROP (SETQ ROOT (U-CASE (ROOTFILENAME FILE))) @@ -1749,10 +1776,11 @@ Your deletions are thus ignored."))) (ED ROOT '(FILES :DONTWAIT)))))) (FB.BROWSECOMMAND - (LAMBDA (BROWSER KEY ITEM MENU OPTION) (* \; "Edited 20-Feb-2021 20:10 by rmk:") - (* \; "Edited 1-Feb-88 18:31 by bvm:") + (LAMBDA (BROWSER KEY ITEM MENU OPTION) (* \; + "Edited 20-Feb-2021 20:10 by rmk:") + (* \; "Edited 1-Feb-88 18:31 by bvm:") -(* |;;;| "view selected file by sprouting a recursive file browser on it") +(* |;;;| "view selected file by sprouting a recursive file browser on it") (FB.ALLOW.ABORT BROWSER) (|for| FILE |in| (FB.SELECTEDFILES BROWSER) |bind| (DEPTH _ (|fetch| @@ -1770,19 +1798,19 @@ Your deletions are thus ignored."))) (LET* ((FIELDS (UNPACKFILENAME.STRING NAME NIL NIL 'TENEX)) (NAMETAIL (MEMB 'NAME FIELDS)) - INTERESTING SUBDIR MAINDIR) (* \; "File is not syntactically a directory. Perhaps the device returned foo.;1 instead of foo>. We know ns servers don't do this.") + INTERESTING SUBDIR MAINDIR) (* \; "File is not syntactically a directory. Perhaps the device returned foo.;1 instead of foo>. We know ns servers don't do this.") (|for| TAIL |on| NAMETAIL |by| (CDDR TAIL) |do| (|if| (OR (EQ 0 (NCHARS (CADR TAIL))) (AND (EQ (CAR TAIL) 'VERSION) (|if| (NEQ (MKATOM (CADR TAIL)) 1) - |then| (* \; - "It has a version--most unlikely for a directory") + |then| (* \; + "It has a version--most unlikely for a directory") (RETURN NIL) |else| T))) - |then| (* \; - "turn empty or boring fields into omitted fields") + |then| (* \; + "turn empty or boring fields into omitted fields") (RPLACA (CDR TAIL) NIL) |else| (SETQ INTERESTING T)) @@ -1791,7 +1819,7 @@ Your deletions are thus ignored."))) (|if| INTERESTING |then| - (* |;;| "Would like just to do (CL:APPLY (function packfilename.string) (nconc fields `(SUBDIRECTORY subdir))), but PACKFILENAME.STRING doesn't seem to know about unix.") + (* |;;| "Would like just to do (CL:APPLY (function packfilename.string) (nconc fields `(SUBDIRECTORY subdir))), but PACKFILENAME.STRING doesn't seem to know about unix.") (SETQ MAINDIR (LISTGET FIELDS 'DIRECTORY)) (SETQ SUBDIR (CL:APPLY (FUNCTION PACKFILENAME.STRING) @@ -1808,8 +1836,8 @@ Your deletions are thus ignored."))) 'OSTYPE) 'UNIX) |then| - (* \; - "Resort to GETHOSTINFO only if the name hasn't given it away yet.") + (* \; + "Resort to GETHOSTINFO only if the name hasn't given it away yet.") "/" |else| ">") SUBDIR)))) @@ -1826,7 +1854,7 @@ Your deletions are thus ignored."))) (DEFINEQ (FB.FASTSEECOMMAND - (LAMBDA (BROWSER KEY ITEM MENU UNFORMATTED) (* \; "Edited 30-Aug-94 19:46 by jds") + (LAMBDA (BROWSER KEY ITEM MENU UNFORMATTED) (* \; "Edited 30-Aug-94 19:46 by jds") (PROG ((*UPPER-CASE-FILE-NAMES* NIL) FILELIST SEEWINDOW) (OR (SETQ FILELIST (FB.SELECTEDFILES BROWSER)) @@ -1837,7 +1865,7 @@ Your deletions are thus ignored."))) |of| BROWSER)))) (FOR FILE IN FILELIST THEREIS - (* |;;| "Only need a SEE window if there's going to be a file to really SEE, as opposed to directories to browse.") + (* |;;| "Only need a SEE window if there's going to be a file to really SEE, as opposed to directories to browse.") (OR (UNPACKFILENAME (FB.FETCHFILENAME FILE) @@ -1845,7 +1873,7 @@ Your deletions are thus ignored."))) (UNPACKFILENAME (FB.FETCHFILENAME FILE) 'EXTENSION)))) - (* \; "Create the SEE window") + (* \; "Create the SEE window") (SETQ SEEWINDOW (CREATEW NIL "SEE window")) (DSPSCROLL T SEEWINDOW) (|replace| (FILEBROWSER SEEWINDOW) |of| BROWSER |with| SEEWINDOW) @@ -1856,36 +1884,38 @@ Your deletions are thus ignored."))) ) (RESETSAVE NIL (LIST (FUNCTION (LAMBDA (WINDOW) (WINDOWPROP WINDOW 'PROCESS NIL) - (* \; - "Remove process attached here by ttydisplaystream") + (* \; + "Remove process attached here by ttydisplaystream") (LET ((BUTTONS (WINDOWPROP WINDOW (WINDOWPROP WINDOW 'MORETYPE)))) (|if| (AND BUTTONS (OPENWP BUTTONS)) |then| - (* \; - "If More button still open, detach it") + (* \; + "If More button still open, detach it") (DETACHWINDOW BUTTONS) (CLOSEW BUTTONS))))) SEEWINDOW)) - (TTYDISPLAYSTREAM SEEWINDOW) (* \; - "Has to be our TTYDISPLAYSTREAM in order for page holding to work") + (TTYDISPLAYSTREAM SEEWINDOW) (* \; + "Has to be our TTYDISPLAYSTREAM in order for page holding to work") (|for| TAIL |on| FILELIST |do| (CL:CATCH :NEXT (FB.FASTSEE.ONEFILE BROWSER (FB.FETCHFILENAME (CAR TAIL)) SEEWINDOW UNFORMATTED (CDR TAIL))))))) (FB.FASTSEE.ONEFILE - (LAMBDA (BROWSER FILE WINDOW UNFORMATTED MORE) (* \; "Edited 21-Feb-2021 14:46 by rmk:") - (* \; "Edited 20-Nov-2000 14:23 by rmk:") - (* \; "Edited 19-Aug-91 13:06 by jds") + (LAMBDA (BROWSER FILE WINDOW UNFORMATTED MORE) (* \; + "Edited 21-Feb-2021 14:46 by rmk:") + (* \; + "Edited 20-Nov-2000 14:23 by rmk:") + (* \; "Edited 19-Aug-91 13:06 by jds") (COND ((DIRECTORYNAMEP FILE) - (* |;;| "We're trying to SEE a directory. Browse it instead. ") + (* |;;| "We're trying to SEE a directory. Browse it instead. ") (FB.BROWSECOMMAND BROWSER)) (T - (* |;;| "We're really browsing a file here, so SEE it.") + (* |;;| "We're really browsing a file here, so SEE it.") (CLEARW WINDOW) (WINDOWPROP WINDOW 'TITLE (CONCAT "Viewing " FILE)) @@ -1896,7 +1926,7 @@ Your deletions are thus ignored."))) (|if| CONDITION |then| - (* |;;| "Failed on this file. If this was the only file, the message can be a little more terse (which is desirable, because the typical message is \"File not found xxx\")") + (* |;;| "Failed on this file. If this was the only file, the message can be a little more terse (which is desirable, because the typical message is \"File not found xxx\")") (FB.PROMPTW.FORMAT BROWSER "~:[Failed~;~:*Couldn't see ~A~] because ~A" (AND MORE FILE) @@ -1921,14 +1951,14 @@ Your deletions are thus ignored."))) (WINDOWPROP WINDOW 'TITLE (CONCAT (WINDOWPROP WINDOW 'TITLE) " -- " "Finished")) (COND - (MORE (* \; "Wait for OK to proceed") + (MORE (* \; "Wait for OK to proceed") (FB.SEEFULLFN (WINDOWPROP WINDOW 'DSP) 'FINISHEDMOREBUTTONS)))))))))) (FB.SEEFULLFN - (LAMBDA (DSP PROP) (* |bvm:| "18-Sep-85 23:29") + (LAMBDA (DSP PROP) (* |bvm:| "18-Sep-85 23:29") - (* |;;| "PAGEFULLFN for a fast SEE window") + (* |;;| "PAGEFULLFN for a fast SEE window") (LET* ((WINDOW (WFROMDS DSP)) (BUTTONS (WINDOWPROP WINDOW (OR PROP (SETQ PROP (WINDOWPROP WINDOW 'MORETYPE))))) @@ -1988,31 +2018,31 @@ Your deletions are thus ignored."))) (AWAIT.EVENT EVENT) |repeatuntil| (WINDOWPROP WINDOW 'MOREOK NIL))))) (FB.SEEBUTTONFN - (LAMBDA (ITEM MENU) (* \; "Edited 28-Jan-88 00:05 by bvm") + (LAMBDA (ITEM MENU) (* \; "Edited 28-Jan-88 00:05 by bvm") -(* |;;;| "WHENSELECTEDFN for the More/Abort menu") +(* |;;;| "WHENSELECTEDFN for the More/Abort menu") (LET* ((MENUW (WFROMMENU MENU)) (WINDOW (MAINWINDOW MENUW))) - (DETACHWINDOW MENUW) (* \; "Take the buttons down") + (DETACHWINDOW MENUW) (* \; "Take the buttons down") (CLOSEW MENUW) (SELECTQ (CADR ITEM) - (MORE (* \; - "Notify pagefullfn that it can continue") + (MORE (* \; + "Notify pagefullfn that it can continue") (WINDOWPROP WINDOW 'MOREOK T) (NOTIFY.EVENT (WINDOWPROP WINDOW 'MOREEVENT))) - (NEXT (* \; - "Throw to the loop that is displaying each file") + (NEXT (* \; + "Throw to the loop that is displaying each file") (PROCESS.EVAL (WINDOWPROP WINDOW 'PROCESS) '(CL:THROW :NEXT))) - (ABORT (* \; "Kill it") + (ABORT (* \; "Kill it") (DEL.PROCESS (WINDOWPROP WINDOW 'PROCESS))) (SHOULDNT))))) ) (DEFINEQ (FB.LOADCOMMAND - (LAMBDA (BROWSER KEY ITEM MENU LOADOP) (* |bvm:| "18-Sep-85 17:16") + (LAMBDA (BROWSER KEY ITEM MENU LOADOP) (* |bvm:| "18-Sep-85 17:16") (LET ((FILES (FB.SELECTEDFILES BROWSER))) (AND FILES (ADD.PROCESS (LIST (FUNCTION FB.OPERATE.ON.FILES) (KWOTE (OR LOADOP (FUNCTION LOAD))) @@ -2023,7 +2053,7 @@ Your deletions are thus ignored."))) 'DON\'T))))) (FB.COMPILECOMMAND - (LAMBDA (BROWSER KEY ITEM MENU COMPILEOP) (* \; "Edited 5-Mar-87 17:39 by bvm:") + (LAMBDA (BROWSER KEY ITEM MENU COMPILEOP) (* \; "Edited 5-Mar-87 17:39 by bvm:") (LET ((FILES (FB.SELECTEDFILES BROWSER))) (AND FILES (ADD.PROCESS (LIST (FUNCTION FB.OPERATE.ON.FILES) (KWOTE (OR COMPILEOP *DEFAULT-CLEANUP-COMPILER*)) @@ -2034,7 +2064,7 @@ Your deletions are thus ignored."))) 'DON\'T))))) (FB.OPERATE.ON.FILES - (LAMBDA (FN FILELIST) (* \; "Edited 4-Feb-88 15:14 by bvm:") + (LAMBDA (FN FILELIST) (* \; "Edited 4-Feb-88 15:14 by bvm:") (LET (LDFLG FORMS) (SELECTQ FN ((PROP SYSLOAD) @@ -2052,30 +2082,34 @@ Your deletions are thus ignored."))) (DEFINEQ (FB.UPDATECOMMAND - (LAMBDA (BROWSER) (* |bvm:| "27-Sep-85 12:30") + (LAMBDA (BROWSER) (* |bvm:| "27-Sep-85 12:30") (COND ((FB.MAYBE.EXPUNGE BROWSER '|Recompute|) (FB.UPDATEBROWSERITEMS BROWSER))))) (FB.FIX-DIRECTORY-DATES - (LAMBDA (BROWSER) (* \; "Edited 23-Nov-2021 12:15 by rmk:") - (* \; "Edited 21-Aug-2021 23:33 by rmk:") + (LAMBDA (BROWSER) (* \; + "Edited 23-Nov-2021 12:15 by rmk:") + (* \; + "Edited 21-Aug-2021 23:33 by rmk:") (* |;;| - "FILEDATE returns the source-file date of a compiled file. We have to call with CFLG T to be sure.") +"FILEDATE returns the source-file date of a compiled file. We have to call with CFLG T to be sure.") (FOR F FD CHANGE IN (FILDIR (FETCH (FILEBROWSER PATTERN) OF BROWSER)) WHEN (SETQ FD (OR (FILEDATE F T) - (FILEDATE F))) UNLESS (IEQP (SETQ FD (IDATE FD)) - (GETFILEINFO F 'ICREATIONDATE)) + (FILEDATE F))) UNLESS (IEQP (SETQ FD (IDATE FD)) + (GETFILEINFO F 'ICREATIONDATE)) DO (SETQ CHANGE T) - (SETFILEINFO F 'ICREATIONDATE FD) FINALLY (CL:WHEN CHANGE (FB.UPDATECOMMAND BROWSER))))) + (SETFILEINFO F 'ICREATIONDATE FD) FINALLY (CL:WHEN CHANGE (FB.UPDATECOMMAND + BROWSER))))) (FB.MAYBE.EXPUNGE - (LAMBDA (BROWSER COMMAND) (* \; "Edited 22-Feb-2021 12:33 by rmk:") - (* |bvm:| "27-Sep-85 12:30") + (LAMBDA (BROWSER COMMAND) (* \; + "Edited 22-Feb-2021 12:33 by rmk:") + (* |bvm:| "27-Sep-85 12:30") -(* |;;;| "If BROWSER has files marked for deletion, ask whether user wants to expunge them. Returns T if it is okay to proceed, NIL if not (user aborted or expunge failed)") +(* |;;;| "If BROWSER has files marked for deletion, ask whether user wants to expunge them. Returns T if it is okay to proceed, NIL if not (user aborted or expunge failed)") (COND ((EQ (|fetch| (FILEBROWSER DELETEDFILES) |of| BROWSER) @@ -2085,14 +2119,14 @@ Your deletions are thus ignored."))) "Some files are marked for deletion. Do you want to expunge them first?") (SELECTQ (MENU (FB.EXPUNGE?.MENU)) - (EXPUNGE (* \; - "Do expunge in another process, not here in mouse") + (EXPUNGE (* \; + "Do expunge in another process, not here in mouse") (FB.EXPUNGECOMMAND BROWSER NIL NIL NIL COMMAND)) (NOEXPUNGE T) NIL))))) (FB.UPDATEBROWSERITEMS - (LAMBDA (BROWSER) (* \; "Edited 30-Aug-94 19:46 by jds") + (LAMBDA (BROWSER) (* \; "Edited 30-Aug-94 19:46 by jds") (RESETLST (PROG ((WINDOW (|fetch| (FILEBROWSER BROWSERWINDOW) |of| BROWSER)) (TBROWSER (|fetch| (FILEBROWSER TABLEBROWSER) |of| BROWSER)) @@ -2102,12 +2136,12 @@ Do you want to expunge them first?") (COND ((SETQ PATTERN (|fetch| (FILEBROWSER PATTERN) |of| BROWSER))) ((SETQ PATTERN (FB.GET.NEWPATTERN BROWSER)) - (* \; - "Didn't have a pattern before--got one now") + (* \; + "Didn't have a pattern before--got one now") (FB.SETNEWPATTERN BROWSER PATTERN)) - (T (* \; "Refused to give me a pattern") + (T (* \; "Refused to give me a pattern") (RETURN))) - (PROGN (* \; "Restore browser to empty state--clear the counter window, set the title, remove any items, reset counters.") + (PROGN (* \; "Restore browser to empty state--clear the counter window, set the title, remove any items, reset counters.") (|replace| (FILEBROWSER INFODISPLAYED) |of| BROWSER |with| (SETQ INFOWANTED @@ -2121,8 +2155,8 @@ Do you want to expunge them first?") |collect| (SETQ SPEC (COPY SPEC)) (|if| (SETQ PROTO (|fetch| (INFOFIELD INFOPROTOTYPE) |of| SPEC)) - |then| (* \; - "Have prototypical example, use it to get better width estimate.") + |then| (* \; + "Have prototypical example, use it to get better width estimate.") (SETQ W (STRINGWIDTH PROTO FONT)) (|replace| (INFOFIELD INFOWIDTH) |of| SPEC |with| (+ W (TIMES 2 (CHARWIDTH (CHARCODE X) @@ -2136,8 +2170,8 @@ Do you want to expunge them first?") (FB.SET.BROWSER.TITLE BROWSER) (CLEARW (|fetch| (FILEBROWSER COUNTERWINDOW) |of| BROWSER)) (CLEARW (|fetch| (FILEBROWSER HEADINGWINDOW) |of| BROWSER)) - (* \; - "Clear header window in case it has been scrolled.") + (* \; + "Clear header window in case it has been scrolled.") (TB.REPLACE.ITEMS TBROWSER NIL) (|replace| (FILEBROWSER FBREADY) |of| BROWSER |with| NIL) (TB.SET.FONT TBROWSER FONT) @@ -2173,8 +2207,8 @@ Do you want to expunge them first?") BROWSER) (|if| NSP |then| - (* \; - "FILING.ENUMERATION.DEPTH is significant for NS servers") + (* \; + "FILING.ENUMERATION.DEPTH is significant for NS servers") FILING.ENUMERATION.DEPTH))) (FILING.ENUMERATION.DEPTH (OR DEPTH FILING.ENUMERATION.DEPTH))) (DECLARE (SPECVARS FILING.ENUMERATION.DEPTH)) @@ -2185,7 +2219,7 @@ Do you want to expunge them first?") |of| BROWSER) (OR DEPTH (NOT (UNPACKFILENAME.STRING PATTERN 'DIRECTORY)))) - |then| (* \; "Ask for SUBTREE.SIZE also, so we can give page estimates of subdirectories, or in the case of enumerating a host, the top-level directories") + |then| (* \; "Ask for SUBTREE.SIZE also, so we can give page estimates of subdirectories, or in the case of enumerating a host, the top-level directories") (|push| DESIREDPROPS 'SUBTREE.SIZE)) (|replace| (FILEBROWSER FBDISPLAYEDDEPTH) |of| BROWSER @@ -2196,19 +2230,19 @@ Do you want to expunge them first?") (|if| CONDITION |then| (FB.PROMPTW.FORMAT BROWSER "Failed because ~A" CONDITION) (RETURN)) - (SETQ NOW (FB.DATE)) (* \; - "Time as of which the enumeration is reasonably valid") + (SETQ NOW (FB.DATE)) (* \; + "Time as of which the enumeration is reasonably valid") (FB.HEADINGW.DISPLAY BROWSER (|fetch| (FILEBROWSER HEADINGWINDOW) |of| BROWSER)) (|while| (SETQ FILENAME (\\GENERATENEXTFILE FILEGENERATOR)) |bind| LASTFILEDATA NEWFILEDATA PREVGROUPDATA OTHERFILES |do| - (* |;;| "For each file, create an FBFILEDATA object. Gather together files with the same name, different version, so that we can sort versions. Thus, the display is always (at least) one file behind the generator: LASTFILEDATA is the first item of a given name, OTHERFILES are the remaining versions. PREVGROUPDATA is representative of the previous group.") + (* |;;| "For each file, create an FBFILEDATA object. Gather together files with the same name, different version, so that we can sort versions. Thus, the display is always (at least) one file behind the generator: LASTFILEDATA is the first item of a given name, OTHERFILES are the remaining versions. PREVGROUPDATA is representative of the previous group.") (COND - ((LISTP FILENAME) (* \; - "Old kind of generator. Extinct?") + ((LISTP FILENAME) (* \; + "Old kind of generator. Extinct?") (SETQ FILENAME (CONCATCODES FILENAME)))) (SETQ NEWFILEDATA (FB.CREATE.FILEBUCKET BROWSER FILENAME (FB.GETALLFILEINFO BROWSER FILEGENERATOR @@ -2219,7 +2253,7 @@ Do you want to expunge them first?") |of| LASTFILEDATA) (|fetch| (FBFILEDATA VERSIONLESSNAME) |of| NEWFILEDATA))) - (* \; "This file same name as previous one, so save it in case we need to sort versions. Note that FB.CREATE.FILEBUCKET canonicalizes the VERSIONLESSNAME, so EQ suffices") + (* \; "This file same name as previous one, so save it in case we need to sort versions. Note that FB.CREATE.FILEBUCKET canonicalizes the VERSIONLESSNAME, so EQ suffices") (|push| OTHERFILES NEWFILEDATA)) (T (COND ((AND LASTFILEDATA (OR (NOT (|fetch| (FBFILEDATA DIRECTORYFILEP) @@ -2231,7 +2265,7 @@ Do you want to expunge them first?") |of| NEWFILEDATA) 1 NIL T NIL UPPERCASEARRAY)))) - (* |;;| "Add the previous group we have accumulated. Second clause says not to add a line for a subdirectory file which is not a leaf, i.e., for which there are files below it in the enumeration (it would be nice if NS filing did this filtering itself).") + (* |;;| "Add the previous group we have accumulated. Second clause says not to add a line for a subdirectory file which is not a leaf, i.e., for which there are files below it in the enumeration (it would be nice if NS filing did this filtering itself).") (FB.ADD.FILEGROUP TBROWSER BROWSER LASTFILEDATA OTHERFILES PREVGROUPDATA) @@ -2258,7 +2292,8 @@ Do you want to expunge them first?") (FB.DISPLAY.COUNTERS BROWSER))))) (FB.DATE - (LAMBDA NIL (* \; "Edited 16-Oct-2021 14:06 by rmk:") + (LAMBDA NIL (* \; + "Edited 16-Oct-2021 14:06 by rmk:") (* |;;| "RMK: Tried to decode and rearrange with Y2K error. Now just pass it through. It used to include the short day of week, that seems silly. It is today's date...or at least the date of the last recompute") @@ -2269,9 +2304,9 @@ Do you want to expunge them first?") (DATE (DATEFORMAT NO.LEADING.SPACES NO.SECONDS)))) (FB.ADJUST.DATE.WIDTH - (LAMBDA (BROWSER INFOWANTED) (* \; "Edited 30-Aug-94 19:40 by jds") + (LAMBDA (BROWSER INFOWANTED) (* \; "Edited 30-Aug-94 19:40 by jds") - (* |;;| "Adjust the expected with field of any date fields (other than the last) to reflect the width of actual dates this device returns. Returns T if it did anything.") + (* |;;| "Adjust the expected with field of any date fields (other than the last) to reflect the width of actual dates this device returns. Returns T if it did anything.") (|for| TAIL |on| INFOWANTED |as| INDEX |from| 0 |while| (CDR TAIL) |bind| (FONT _ (|fetch| (FILEBROWSER BROWSERFONT) |of| BROWSER)) @@ -2288,7 +2323,7 @@ Do you want to expunge them first?") ) |then| - (* |;;| "Got a sample date. Assuming all dates have the same number of characters, compute a width that fits this date plus a couple spaces. Computation here for variable-width font assumes \"MAY\" is about as wide as you get, and finesses the issue of whether this date happens to start with leading space and/or contain some especially skinny letters.") + (* |;;| "Got a sample date. Assuming all dates have the same number of characters, compute a width that fits this date plus a couple spaces. Computation here for variable-width font assumes \"MAY\" is about as wide as you get, and finesses the issue of whether this date happens to start with leading space and/or contain some especially skinny letters.") (|replace| (INFOFIELD INFOWIDTH) |of| SPEC |with| (+ (STRINGWIDTH "XX99-MAY-88 99:99:99" @@ -2296,8 +2331,8 @@ Do you want to expunge them first?") (|if| (> (NCHARS ITEM) 18) |then| - (* \; - "Have a time-zone, too, or something") + (* \; + "Have a time-zone, too, or something") (STRINGWIDTH (SUBSTRING ITEM 19) FONT) @@ -2306,7 +2341,8 @@ Do you want to expunge them first?") |finally| (RETURN RESULT)))) (FB.SET.BROWSER.TITLE - (LAMBDA (BROWSER TIME) (* \; "Edited 16-Oct-2021 14:10 by rmk:") + (LAMBDA (BROWSER TIME) (* \; + "Edited 16-Oct-2021 14:10 by rmk:") (* |;;| "(Re)display the title on BROWSER's window. If Time is supplied, it is the time at which the enumeration happened, and we include it in the title. Title is not changed if user supplied own title.") @@ -2323,16 +2359,16 @@ Do you want to expunge them first?") " browser"))))))) (FB.MAYBE.WIDEN.NAMES - (LAMBDA (BROWSER) (* |bvm:| "18-Oct-85 17:32") + (LAMBDA (BROWSER) (* |bvm:| "18-Oct-85 17:32") -(* |;;;| "Examines the OVERFLOWWIDTHS field to see if we should widen the name area of the browser, shoving everything else to the right. If it changes the width, returns T so that caller knows whether to update display") +(* |;;;| "Examines the OVERFLOWWIDTHS field to see if we should widen the name area of the browser, shoving everything else to the right. If it changes the width, returns T so that caller knows whether to update display") (LET ((OVERFLOW (|fetch| (FILEBROWSER OVERFLOWWIDTHS) |of| BROWSER)) (CURRENTSTART (|fetch| (FILEBROWSER INFOSTART) |of| BROWSER)) THRESHOLD) (COND - (OVERFLOW (* \; - "See if enough files were too wide for print spec") + (OVERFLOW (* \; + "See if enough files were too wide for print spec") (SETQ THRESHOLD (IMIN (IMAX (FIXR (FTIMES (|fetch| (FILEBROWSER TOTALFILES ) |of| BROWSER) FB.OVERFLOW.MAXFRAC)) @@ -2345,14 +2381,14 @@ Do you want to expunge them first?") THRESHOLD (CADR PAIR))) 0)) - |do| (* \; - "Stop here! Any further than this and we would have more than the max files overflowing") + |do| (* \; + "Stop here! Any further than this and we would have more than the max files overflowing") (|replace| (FILEBROWSER INFOSTART) |of| BROWSER |with| (CAR PAIR)) (RETURN T))))))) (FB.SET.DEFAULT.NAME.WIDTH - (LAMBDA (BROWSER) (* |bvm:| "18-Oct-85 17:54") + (LAMBDA (BROWSER) (* |bvm:| "18-Oct-85 17:54") (LET ((FONT (|fetch| (FILEBROWSER BROWSERFONT) |of| BROWSER))) (|replace| (FILEBROWSER INFOSTART) |of| BROWSER |with| (IPLUS (|replace| (FILEBROWSER NAMEOVERHEAD) |of| BROWSER @@ -2370,13 +2406,13 @@ Do you want to expunge them first?") (|replace| (FILEBROWSER OVERFLOWWIDTHS) |of| BROWSER |with| NIL)))) (FB.CREATE.FILEBUCKET - (LAMBDA (BROWSER FILENAME FILEINFO LASTFILEDATA) (* \; "Edited 1-Feb-88 14:44 by bvm:") + (LAMBDA (BROWSER FILENAME FILEINFO LASTFILEDATA) (* \; "Edited 1-Feb-88 14:44 by bvm:") - (* |;;| "Create a FBFILEDATA encapsulating FILENAME and its FILEINFO. If LASTFILEDATA is supplied, it is the filedata from the previous file parsed, which we make use of to create canonical VERSIONLESSNAME fields.") + (* |;;| "Create a FBFILEDATA encapsulating FILENAME and its FILEINFO. If LASTFILEDATA is supplied, it is the filedata from the previous file parsed, which we make use of to create canonical VERSIONLESSNAME fields.") (|if| (NOT (STRINGP FILENAME)) - |then| (* \; - "Some things are nicer if we force everything to be a string.") + |then| (* \; + "Some things are nicer if we force everything to be a string.") (SETQ FILENAME (STRING FILENAME))) (COND ((NULL (|fetch| (FILEBROWSER PATTERNPARSED?) |of| BROWSER)) @@ -2393,22 +2429,22 @@ Do you want to expunge them first?") DEC)) (SETQ DEC (TIMES 10 DEC)) (SETQ LASTNAMECHAR (SUB1 LASTNAMECHAR)) |finally| - (* \; "not a version char") + (* \; "not a version char") (COND ((EQ CH (CHARCODE \;)) - (* \; "Pull off the version from the end, so that we can sort with it, etc. Note that we assume that all devices have converted native syntax to Lisp here.") + (* \; "Pull off the version from the end, so that we can sort with it, etc. Note that we assume that all devices have converted native syntax to Lisp here.") (SETQ LASTNAMECHAR (SUB1 LASTNAMECHAR ))) (T (SETQ VERSION 0) - (* \; "Null version") + (* \; "Null version") (SETQ LASTNAMECHAR NIL)))) (SETQ NEWFILEDATA (|if| (AND LASTFILEDATA (STRING-EQUAL (|fetch| (FBFILEDATA VERSIONLESSNAME) |of| LASTFILEDATA) FILENAME :END2 (OR LASTNAMECHAR NAMELENGTH))) - |then| (* \; - "This file is just like the previous one, except for attributes, full name and version") + |then| (* \; + "This file is just like the previous one, except for attributes, full name and version") (|create| FBFILEDATA |using| LASTFILEDATA) |else| (|for| (N _ STARTOFNAME) |do| (SELCHARQ (NTHCHARCODE FILENAME (|add| N 1)) @@ -2417,29 +2453,29 @@ Do you want to expunge them first?") (SETQ LASTDIR N) (|add| DEPTH 1)) (\' - (* \; "Next char is quoted") + (* \; "Next char is quoted") (|add| N 1)) (NIL (RETURN)) NIL)) (|if| (EQ LASTDIR NAMELENGTH) - |then| (* \; - "It's a directory name (e.g., with ns), so make the name be the last subdirectory") + |then| (* \; + "It's a directory name (e.g., with ns), so make the name be the last subdirectory") (SETQ LASTDIR PREVDIR) (SETQ DIRP T) (|add| DEPTH -1)) (COND - (LASTDIR (* \; - "We found a directory delimiter following the common directory prefix of the pattern. ") + (LASTDIR (* \; + "We found a directory delimiter following the common directory prefix of the pattern. ") (SETQ HASDIRPREFIX T) (SETQ STARTOFSHORTNAME (ADD1 LASTDIR)) - (* \; "Directoryless name starts here") + (* \; "Directoryless name starts here") (COND ((NOT (|fetch| (FILEBROWSER NOSUBDIRECTORIES) |of| BROWSER - )) (* \; "Use short name if allowed.") + )) (* \; "Use short name if allowed.") (SETQ STARTOFNAME STARTOFSHORTNAME)))) (T (SETQ STARTOFSHORTNAME STARTOFNAME))) - (* \; - "Note optimization: SUBDIREND is zero (SUBDIRECTORY null) when HASDIRPREFIX is NIL.") + (* \; + "Note optimization: SUBDIREND is zero (SUBDIRECTORY null) when HASDIRPREFIX is NIL.") (|create| FBFILEDATA STARTOFPNAME _ STARTOFNAME VERSIONLESSNAME _ (COND @@ -2473,9 +2509,9 @@ Do you want to expunge them first?") NEWFILEDATA))) (FB.CHECK.NAME.LENGTH - (LAMBDA (BROWSER FILEDATA) (* \; "Edited 25-Jan-88 15:44 by bvm") + (LAMBDA (BROWSER FILEDATA) (* \; "Edited 25-Jan-88 15:44 by bvm") -(* |;;;| "Checks the name in FILEDATA to see if printing it would overflow the space set aside for the name column in the browser. If so, updates some information that will help us decide later whether to expand the column") +(* |;;;| "Checks the name in FILEDATA to see if printing it would overflow the space set aside for the name column in the browser. If so, updates some information that will help us decide later whether to expand the column") (LET ((PRINTLENGTH (+ (STRINGWIDTH (|fetch| (FBFILEDATA PRINTNAME) |of| FILEDATA) (|fetch| (FILEBROWSER BROWSERFONT) |of| BROWSER)) @@ -2483,7 +2519,7 @@ Do you want to expunge them first?") (COND ((>= PRINTLENGTH (|fetch| (FILEBROWSER INFOSTART) |of| BROWSER)) - (* |;;| "Name is longer than allotted space in browser. Shall we allot more space? Don't know until we're thru. For now, record a list of elements (width occurrences), where each name is recorded in the closest entry") + (* |;;| "Name is longer than allotted space in browser. Shall we allot more space? Don't know until we're thru. For now, record a list of elements (width occurrences), where each name is recorded in the closest entry") (LET ((OVERFLOW (|fetch| (FILEBROWSER OVERFLOWWIDTHS) |of| BROWSER)) (SPACING (|fetch| (FILEBROWSER OVERFLOWSPACING) |of| BROWSER))) @@ -2496,8 +2532,8 @@ Do you want to expunge them first?") (T (|for| (TAIL _ OVERFLOW) |bind| PREVTAIL |when| (OR (NULL (SETQ TAIL (CDR (SETQ PREVTAIL TAIL)))) (> PRINTLENGTH (CAR (CAR TAIL)))) - |do| (* \; - "Longer than some previously recorded length, so either add a new entry or bump the preceding one") + |do| (* \; + "Longer than some previously recorded length, so either add a new entry or bump the preceding one") (COND ((< PRINTLENGTH (- (CAR (CAR PREVTAIL)) SPACING)) @@ -2508,20 +2544,20 @@ Do you want to expunge them first?") (RETURN)))))))))) (FB.ADD.FILEGROUP - (LAMBDA (TBROWSER FBROWSER FIRSTDATA OTHERDATA PREVDATA) (* \; "Edited 1-Feb-88 14:43 by bvm:") + (LAMBDA (TBROWSER FBROWSER FIRSTDATA OTHERDATA PREVDATA) (* \; "Edited 1-Feb-88 14:43 by bvm:") - (* |;;| "Appends to FBROWSER the set of files FIRSTDATA plus each of OTHERDATA, all of which are known to have the same name save version number. PREVDATA is representative of the last item we inserted.") + (* |;;| "Appends to FBROWSER the set of files FIRSTDATA plus each of OTHERDATA, all of which are known to have the same name save version number. PREVDATA is representative of the last item we inserted.") (COND ((AND (NOT (|fetch| (FILEBROWSER NOSUBDIRECTORIES) |of| FBROWSER)) (NOT (|if| PREVDATA |then| (EQ.DIRECTORYP PREVDATA FIRSTDATA) - |else| (NULL.DIRECTORYP FIRSTDATA))))(* \; - "The new files have a different subdirectory, so insert a non-selectable line item here") + |else| (NULL.DIRECTORYP FIRSTDATA))))(* \; + "The new files have a different subdirectory, so insert a non-selectable line item here") (FB.INSERT.DIRECTORY TBROWSER FBROWSER FIRSTDATA))) (COND - (OTHERDATA (* \; - "More than one file to add, so sort versions") + (OTHERDATA (* \; + "More than one file to add, so sort versions") (|for| ITEM |in| (SORT (|for| D |in| (CONS FIRSTDATA OTHERDATA) |collect| (|create| TABLEITEM TIDATA _ D)) @@ -2531,14 +2567,14 @@ Do you want to expunge them first?") TIDATA _ FIRSTDATA)))))) (FB.INSERT.DIRECTORY - (LAMBDA (TBROWSER FBROWSER DATAWITHSUBDIR BEFOREITEM) (* \; "Edited 25-Jan-88 17:13 by bvm") + (LAMBDA (TBROWSER FBROWSER DATAWITHSUBDIR BEFOREITEM) (* \; "Edited 25-Jan-88 17:13 by bvm") (TB.INSERT.ITEM TBROWSER (FB.MAKE.SUBDIRECTORY.ITEM FBROWSER DATAWITHSUBDIR) BEFOREITEM))) (FB.MAKE.SUBDIRECTORY.ITEM - (LAMBDA (FBROWSER DATAWITHSUBDIR) (* \; "Edited 26-Jan-88 10:58 by bvm") + (LAMBDA (FBROWSER DATAWITHSUBDIR) (* \; "Edited 26-Jan-88 10:58 by bvm") -(* |;;;| "Creates a TABLEITEM containing a subdirectory line identifying the subdirectory in DATAWITHSUBDIR. If item has no subdirectory, we use the browser's pattern directory") +(* |;;;| "Creates a TABLEITEM containing a subdirectory line identifying the subdirectory in DATAWITHSUBDIR. If item has no subdirectory, we use the browser's pattern directory") (LET* ((SUBDIRECTORY (OR (|fetch| (FBFILEDATA SUBDIRECTORY) |of| DATAWITHSUBDIR) (SUBSTRING (|fetch| (FILEBROWSER PATTERN) |of| FBROWSER) @@ -2552,16 +2588,16 @@ Do you want to expunge them first?") FILENAME _ SUBDIRECTORY STARTOFPNAME _ (|if| (<= DIRSTART (NCHARS SUBDIRECTORY)) |then| DIRSTART - |else| (* \; "No directory--use whole name") + |else| (* \; "No directory--use whole name") 1) VERSIONLESSNAME _ SUBDIRECTORY DIRECTORYP _ T))))) (FB.ADD.FILE - (LAMBDA (TBROWSER FBROWSER ITEM BEFOREITEM) (* |bvm:| "13-Oct-85 17:44") + (LAMBDA (TBROWSER FBROWSER ITEM BEFOREITEM) (* |bvm:| "13-Oct-85 17:44") -(* |;;;| -"Inserts one file in TBROWSER / FBROWSER before item BEFOREITEM or at end if BEFOREITEM is NIL") +(* |;;;| +"Inserts one file in TBROWSER / FBROWSER before item BEFOREITEM or at end if BEFOREITEM is NIL") (LET ((SIZE (|fetch| (FBFILEDATA SIZE) |of| (|fetch| TIDATA |of| ITEM)))) (COND @@ -2572,7 +2608,7 @@ Do you want to expunge them first?") (TB.INSERT.ITEM TBROWSER ITEM BEFOREITEM)))) (FB.INSERT.FILE - (LAMBDA (BROWSER FILE) (* \; "Edited 25-Jan-88 18:31 by bvm") + (LAMBDA (BROWSER FILE) (* \; "Edited 25-Jan-88 18:31 by bvm") (LET ((TBROWSER (|fetch| (FILEBROWSER TABLEBROWSER) |of| BROWSER)) (FBSORTFN (|fetch| (FILEBROWSER SORTBY) |of| BROWSER)) (MYDATA (|fetch| TIDATA |of| FILE)) @@ -2590,7 +2626,7 @@ Do you want to expunge them first?") (SUB1 N)))) (NOT (EQ.DIRECTORYP MYDATA (|fetch| TIDATA |of| NEXTITEM)))) - (* |;;| "We sort before NEXTITEM, but it's preceded by a subdirectory line that isn't ours, so insert in front of the subdirectory") + (* |;;| "We sort before NEXTITEM, but it's preceded by a subdirectory line that isn't ours, so insert in front of the subdirectory") (SETQ NEXTITEM PREVITEM))) (TB.INSERT.ITEM TBROWSER FILE NEXTITEM) @@ -2599,73 +2635,73 @@ Do you want to expunge them first?") ((AND NEXTITEM (NOT (|fetch| TIUNSELECTABLE |of| NEXTITEM)) (EQ.DIRECTORYP MYDATA (SETQ OTHERDATA (|fetch| TIDATA |of| NEXTITEM)))) - (* |;;| "All ok -- next item is not a subdirectory line, and its subdir is the same as mine, so I must be properly qualified already") + (* |;;| "All ok -- next item is not a subdirectory line, and its subdir is the same as mine, so I must be properly qualified already") ) (T - (* |;;| - "Inserted at end, or newly inserted item has different subdirectory from the item that follows it") + (* |;;| + "Inserted at end, or newly inserted item has different subdirectory from the item that follows it") (COND ((AND NEXTITEM (NOT (|fetch| TIUNSELECTABLE |of| NEXTITEM))) - (* \; - "Need subdirectory id in front of next file") + (* \; + "Need subdirectory id in front of next file") (FB.INSERT.DIRECTORY TBROWSER BROWSER OTHERDATA NEXTITEM))) (COND ((COND ((EQ (SETQ N (|fetch| TI# |of| FILE)) - 1) (* \; - "Inserted at front, needs qualification if it has a subdir") + 1) (* \; + "Inserted at front, needs qualification if it has a subdir") (NOT (NULL.DIRECTORYP MYDATA))) (T (NOT (EQ.DIRECTORYP MYDATA (|fetch| TIDATA |of| (SETQ PREVITEM (TB.NTH.ITEM TBROWSER (SUB1 N)))))))) - (* \; - "Need id in front of new file as well") + (* \; + "Need id in front of new file as well") (FB.INSERT.DIRECTORY TBROWSER BROWSER MYDATA FILE))))) (FB.COUNT.FILE.CHANGE BROWSER FILE 'ADD)))) (FB.ANALYZE.PATTERN - (LAMBDA (BROWSER SAMPLE) (* \; "Edited 6-Apr-90 20:00 by NM") + (LAMBDA (BROWSER SAMPLE) (* \; "Edited 6-Apr-90 20:00 by NM") -(* |;;;| "Figures out what the 'real pattern' is from SAMPLE, one of the files that is claimed to match the pattern. Sets the NAMESTART field to where the pattern ends and the distinguishable names start. Also resets PATTERN to be the canonicalized pattern") +(* |;;;| "Figures out what the 'real pattern' is from SAMPLE, one of the files that is claimed to match the pattern. Sets the NAMESTART field to where the pattern ends and the distinguishable names start. Also resets PATTERN to be the canonicalized pattern") (PROG ((PATTERN (|fetch| (FILEBROWSER PATTERN) |of| BROWSER)) (SAMPLEHOSTEND 0) PATHOSTEND LASTPATDIR STARTOFNAME) - (|do| (* \; "Find end of sample's host name") + (|do| (* \; "Find end of sample's host name") (SELCHARQ (NTHCHARCODE SAMPLE (|add| SAMPLEHOSTEND 1)) (\' (|add| SAMPLEHOSTEND 1)) - (} (* \; "End of directory") + (} (* \; "End of directory") (RETURN)) - (NIL (* \; - "End of file name without end of brace?") + (NIL (* \; + "End of file name without end of brace?") (RETURN (SETQ SAMPLEHOSTEND 0))) NIL)) RETRY (SETQ PATHOSTEND 0) (|do| (SELCHARQ (NTHCHARCODE PATTERN (|add| PATHOSTEND 1)) (\' (|add| PATHOSTEND 1)) - (} (* \; - "End of directory, now look for end of matchable pattern") + (} (* \; + "End of directory, now look for end of matchable pattern") (RETURN (|for| (N _ PATHOSTEND) |do| (SELCHARQ (NTHCHARCODE PATTERN (|add| N 1)) (\' (|add| N 1)) ((\: < > /) - (* \; "{DSK} and {UNIX} on Sun represent root directory in a form of \"{DSK}, or {x/n}<~> might become {x/n}jones>.") + (* |;;| "Get the \"canonical\" version of PATTERN so that its apparent directory matches what is coming back from the server. E.g., {DSK} might become {DSK}, or {x/n}<~> might become {x/n}jones>.") (OR (SELCHARQ (NTHCHARCODE SAMPLE (|add| SAMPLEHOSTEND 1)) - ((< /) (* \; - "Good, there's a directory -- canonicalize it") + ((< /) (* \; + "Good, there's a directory -- canonicalize it") (LET ((CANONICAL (DIRECTORYNAME (SUBSTRING PATTERN 1 (OR LASTPATDIR (SETQ LASTPATDIR PATHOSTEND)))) )) (AND CANONICAL (CONCAT CANONICAL (SUBSTRING PATTERN (ADD1 LASTPATDIR)))))) - (PROGN (* \; - "File coming back has no directory, so there's nothing interesting to do") + (PROGN (* \; + "File coming back has no directory, so there's nothing interesting to do") NIL)) PATTERN))) (FB.GETALLFILEINFO - (LAMBDA (BROWSER GENERATOR ATTRIBUTES) (* \; "Edited 1-Feb-88 15:50 by bvm:") + (LAMBDA (BROWSER GENERATOR ATTRIBUTES) (* \; "Edited 1-Feb-88 15:50 by bvm:") - (* |;;| "Returns a FILEINFO field for the given attribute specs") + (* |;;| "Returns a FILEINFO field for the given attribute specs") (|for| ATTR |in| ATTRIBUTES |bind| VALUE TREESIZE |collect| (SETQ VALUE (\\GENERATEFILEINFO GENERATOR (CAR ATTR))) @@ -2735,7 +2771,7 @@ Do you want to expunge them first?") (SETQ TREESIZE (\\GENERATEFILEINFO GENERATOR 'SUBTREE.SIZE))) |then| - (* |;;| "This is an NS directory node, so get its subtree size, which is much more interesting than size, which is always zero (directories have no data)") + (* |;;| "This is an NS directory node, so get its subtree size, which is much more interesting than size, which is always zero (directories have no data)") (SELECTQ (CAR ATTR) (SIZE (FOLDHI TREESIZE BYTESPERPAGE)) @@ -2746,9 +2782,9 @@ Do you want to expunge them first?") (DEFINEQ (FB.SORT.VERSIONS - (LAMBDA (ITEMS SORTFN) (* \; "Edited 25-Jan-88 15:22 by bvm") + (LAMBDA (ITEMS SORTFN) (* \; "Edited 25-Jan-88 15:22 by bvm") -(* |;;;| "Sort ITEMS so that equal names are sorted by version according to SORTFN. Assumes that ITEMS are already sorted by name") +(* |;;;| "Sort ITEMS so that equal names are sorted by version according to SORTFN. Assumes that ITEMS are already sorted by name") (LET ((TAIL ITEMS) PREVTAIL NEXTTAIL NEWTAIL THISNAME) @@ -2760,8 +2796,8 @@ Do you want to expunge them first?") (|fetch| (FBFILEDATA VERSIONLESSNAME) |of| (|fetch| TIDATA |of| (CADR TAIL)))) - (* \; - "Same name as next, so gather up all equal names") + (* \; + "Same name as next, so gather up all equal names") (SETQ NEXTTAIL (CDDR TAIL)) (|while| (AND NEXTTAIL (STRING-EQUAL THISNAME (|fetch| (FBFILEDATA @@ -2774,8 +2810,8 @@ Do you want to expunge them first?") |do| (SETQ NEXTTAIL (CDR NEXTTAIL))) (SETQ NEWTAIL (SORT (|until| (EQ TAIL NEXTTAIL) |collect| (|pop| TAIL)) - SORTFN)) (* \; - "Now splice NEWTAIL into list between PREVTAIL and NEXTTAIL") + SORTFN)) (* \; + "Now splice NEWTAIL into list between PREVTAIL and NEXTTAIL") (COND (PREVTAIL (RPLACD PREVTAIL NEWTAIL)) (T (SETQ ITEMS NEWTAIL))) @@ -2787,9 +2823,9 @@ Do you want to expunge them first?") ITEMS))) (FB.DECREASING.VERSION - (LAMBDA (X Y) (* |bvm:| "13-Oct-85 17:53") + (LAMBDA (X Y) (* |bvm:| "13-Oct-85 17:53") -(* |;;;| "Comparefn for sorting a group of same named files by decreasing version. Null version considered high") +(* |;;;| "Comparefn for sorting a group of same named files by decreasing version. Null version considered high") (AND (NOT (NULL.VERSIONP (SETQ Y (|fetch| (FBFILEDATA VERSION) |of| (|fetch| TIDATA |of| Y))))) @@ -2798,9 +2834,9 @@ Do you want to expunge them first?") (IGREATERP X Y))))) (FB.INCREASING.VERSION - (LAMBDA (X Y) (* |bvm:| "13-Oct-85 17:55") + (LAMBDA (X Y) (* |bvm:| "13-Oct-85 17:55") -(* |;;;| "Comparefn for sorting a group of same named files by increasing version. Null version considered high") +(* |;;;| "Comparefn for sorting a group of same named files by increasing version. Null version considered high") (OR (NULL.VERSIONP (SETQ Y (|fetch| (FBFILEDATA VERSION) |of| (|fetch| TIDATA |of| Y)))) @@ -2809,9 +2845,9 @@ Do you want to expunge them first?") (ILESSP X Y))))) (FB.NAMES.DECREASING.VERSION - (LAMBDA (X Y) (* |bvm:| "13-Oct-85 17:57") + (LAMBDA (X Y) (* |bvm:| "13-Oct-85 17:57") -(* |;;;| "Comparison function for sorting file names in alphabetical order, decreasing versions") +(* |;;;| "Comparison function for sorting file names in alphabetical order, decreasing versions") (SELECTQ (ALPHORDER (|fetch| (FBFILEDATA VERSIONLESSNAME) |of| (SETQ X (|fetch| TIDATA @@ -2827,9 +2863,9 @@ Do you want to expunge them first?") NIL))) (FB.NAMES.INCREASING.VERSION - (LAMBDA (X Y) (* |bvm:| "13-Oct-85 17:54") + (LAMBDA (X Y) (* |bvm:| "13-Oct-85 17:54") -(* |;;;| "Comparison function for sorting file names in alphabetical order, increasing versions") +(* |;;;| "Comparison function for sorting file names in alphabetical order, increasing versions") (SELECTQ (ALPHORDER (|fetch| (FBFILEDATA VERSIONLESSNAME) |of| (SETQ X (|fetch| TIDATA @@ -2844,9 +2880,9 @@ Do you want to expunge them first?") NIL))) (FB.DECREASING.NUMERIC.ATTR - (LAMBDA (X Y) (* |bvm:| "13-Oct-85 17:44") + (LAMBDA (X Y) (* |bvm:| "13-Oct-85 17:44") -(* |;;;| "Comparison function for sorting file names in decreasing order of some numeric attribute. If values are equal, fall back on names decreasing version") +(* |;;;| "Comparison function for sorting file names in decreasing order of some numeric attribute. If values are equal, fall back on names decreasing version") (LET ((XVAL (OR (|fetch| (FBFILEDATA SORTVALUE) |of| (|fetch| TIDATA |of| X)) 0)) @@ -2857,9 +2893,9 @@ Do you want to expunge them first?") (FB.NAMES.DECREASING.VERSION X Y)))))) (FB.INCREASING.NUMERIC.ATTR - (LAMBDA (X Y) (* |bvm:| "13-Oct-85 17:44") + (LAMBDA (X Y) (* |bvm:| "13-Oct-85 17:44") -(* |;;;| "Comparison function for sorting file names in increasing order of some numeric attribute. If values are equal, fall back on names decreasing version") +(* |;;;| "Comparison function for sorting file names in increasing order of some numeric attribute. If values are equal, fall back on names decreasing version") (LET ((XVAL (OR (|fetch| (FBFILEDATA SORTVALUE) |of| (|fetch| TIDATA |of| X)) 0)) @@ -2870,9 +2906,9 @@ Do you want to expunge them first?") (FB.NAMES.DECREASING.VERSION X Y)))))) (FB.ALPHABETIC.ATTR - (LAMBDA (X Y) (* |bvm:| "20-Oct-85 18:07") + (LAMBDA (X Y) (* |bvm:| "20-Oct-85 18:07") -(* |;;;| "Comparison function for sorting file names in order of some textual attribute. If values are equal, fall back on names decreasing version") +(* |;;;| "Comparison function for sorting file names in order of some textual attribute. If values are equal, fall back on names decreasing version") (SELECTQ (ALPHORDER (|fetch| (FBFILEDATA SORTVALUE) |of| (|fetch| TIDATA |of| X)) @@ -2885,7 +2921,7 @@ Do you want to expunge them first?") (DEFINEQ (FB.SORTCOMMAND - (LAMBDA (BROWSER) (* \; "Edited 29-Jan-88 12:47 by bvm") + (LAMBDA (BROWSER) (* \; "Edited 29-Jan-88 12:47 by bvm") (PROG ((TBROWSER (|fetch| (FILEBROWSER TABLEBROWSER) |of| BROWSER)) (HADNOSUBDIRS (|fetch| (FILEBROWSER NOSUBDIRECTORIES) |of| BROWSER)) SORTATTR SORT# SORTFN REVERSED ALLFILES DATETYPE BYNAME) @@ -2913,8 +2949,8 @@ Do you want to expunge them first?") (FB.PROMPTW.FORMAT BROWSER "Sorting by ~A..." SORTATTR) (SETQ ALLFILES (TB.COLLECT.ITEMS TBROWSER (FUNCTION FB.IS.NOT.SUBDIRECTORY.ITEM))) (COND - ((NOT BYNAME) (* \; - "Need to compute the attribute on which we sort") + ((NOT BYNAME) (* \; + "Need to compute the attribute on which we sort") (SETQ SORT# (OR (CL:POSITION SORTATTR (|fetch| (FILEBROWSER INFODISPLAYED) |of| BROWSER) :KEY @@ -2934,13 +2970,13 @@ Do you want to expunge them first?") (|replace| (FBFILEDATA SORTVALUE) |of| DATA |with| VALUE) (COND ((AND NAMESTART (|fetch| (FBFILEDATA HASDIRPREFIX) |of| DATA)) - (* \; - "Need to go back to 'full' names, since subdirectories are senseless when not sorted by name") + (* \; + "Need to go back to 'full' names, since subdirectories are senseless when not sorted by name") (|replace| (FBFILEDATA STARTOFPNAME) |of| DATA |with| NAMESTART) (FB.CHECK.NAME.LENGTH BROWSER DATA))))) - (HADNOSUBDIRS (* \; - "We're sorting by name, so switch back to print names without subdirs") + (HADNOSUBDIRS (* \; + "We're sorting by name, so switch back to print names without subdirs") (FB.SET.DEFAULT.NAME.WIDTH BROWSER) (|for| DATA |in| ALLFILES |do| (COND ((|fetch| (FBFILEDATA @@ -2960,8 +2996,8 @@ Do you want to expunge them first?") ) (SETQ ALLFILES (SORT ALLFILES SORTFN)) (COND - ((EQ BYNAME HADNOSUBDIRS) (* \; - "Were wide names, now narrow, or vice versa") + ((EQ BYNAME HADNOSUBDIRS) (* \; + "Were wide names, now narrow, or vice versa") (FB.MAYBE.WIDEN.NAMES BROWSER))) (COND (BYNAME (FB.INSERT.SUBDIRECTORIES BROWSER ALLFILES))) @@ -2980,19 +3016,19 @@ Do you want to expunge them first?") (FB.PROMPTWPRINT BROWSER "done")))) (FB.INSERT.SUBDIRECTORIES - (LAMBDA (BROWSER FILES) (* \; "Edited 26-Jan-88 10:45 by bvm") + (LAMBDA (BROWSER FILES) (* \; "Edited 26-Jan-88 10:45 by bvm") (|for| TAIL |on| FILES |bind| (LASTDATA _ (|create| FBFILEDATA SUBDIREND _ 0)) |when| (NOT (EQ.DIRECTORYP LASTDATA (SETQ LASTDATA (|fetch| TIDATA |of| (CAR TAIL))))) - |do| (* \; - "This guy's directory differs from previous, so add subdirectory item") + |do| (* \; + "This guy's directory differs from previous, so add subdirectory item") (ATTACH (FB.MAKE.SUBDIRECTORY.ITEM BROWSER LASTDATA) TAIL) (SETQ TAIL (CDR TAIL))))) (FB.GET.SORT.MENU - (LAMBDA (BROWSER) (* \; "Edited 26-Jan-88 12:38 by bvm") + (LAMBDA (BROWSER) (* \; "Edited 26-Jan-88 12:38 by bvm") (OR (|fetch| (FILEBROWSER SORTMENU) |of| BROWSER) (|replace| (FILEBROWSER SORTMENU) |of| BROWSER @@ -3029,8 +3065,9 @@ Do you want to expunge them first?") (DEFINEQ (FB.EXPUNGECOMMAND - (LAMBDA (FBROWSER KEY ITEM MENU CMD) (* \; "Edited 22-Feb-2021 12:36 by rmk:") - (* \; "Edited 9-Apr-93 22:07 by jds") + (LAMBDA (FBROWSER KEY ITEM MENU CMD) (* \; + "Edited 22-Feb-2021 12:36 by rmk:") + (* \; "Edited 9-Apr-93 22:07 by jds") (PROG ((*UPPER-CASE-FILE-NAMES* NIL) (TBROWSER (|fetch| (FILEBROWSER TABLEBROWSER) |of| FBROWSER)) (NDELETED 0) @@ -3050,8 +3087,8 @@ Do you want to expunge them first?") "Couldn't expunge " FILENAME) (SETQ FAILED T))) - (* |;;| - "Let other things run (Like the mouse, so user can ABORT the expunge!)") + (* |;;| + "Let other things run (Like the mouse, so user can ABORT the expunge!)") (BLOCK)) (FB.PROMPTWPRINT FBROWSER (COND @@ -3072,7 +3109,7 @@ Done, but only ") (RETURN T)))) (FB.NEWPATTERNCOMMAND - (LAMBDA (BROWSER) (* \; "Edited 28-Jan-88 01:11 by bvm") + (LAMBDA (BROWSER) (* \; "Edited 28-Jan-88 01:11 by bvm") (LET (PATTERN) (COND ((AND (FB.MAYBE.EXPUNGE BROWSER "New Pattern") @@ -3081,8 +3118,9 @@ Done, but only ") (FB.UPDATEBROWSERITEMS BROWSER)))))) (FB.NEWINFOCOMMAND - (LAMBDA (BROWSER) (* \; "Edited 22-Feb-2021 12:35 by rmk:") - (* \; "Edited 30-Aug-94 19:47 by jds") + (LAMBDA (BROWSER) (* \; + "Edited 22-Feb-2021 12:35 by rmk:") + (* \; "Edited 30-Aug-94 19:47 by jds") (LET ((WINDOW (|fetch| (FILEBROWSER BROWSERWINDOW) |of| BROWSER)) (INFOMENUW (|fetch| (FILEBROWSER INFOMENUW) |of| BROWSER)) REG) @@ -3100,8 +3138,8 @@ Done, but only ") (COND ((LESSP (|fetch| (REGION BOTTOM) |of| (SETQ REG (WINDOWPROP INFOMENUW 'REGION))) - 0) (* \; - "Bump whole window up on screen so we can see it") + 0) (* \; + "Bump whole window up on screen so we can see it") (MOVEW WINDOW (|create| POSITION XCOORD _ (|fetch| (REGION LEFT) |of| REG) YCOORD _ (|fetch| (REGION HEIGHT) |of| REG))))) @@ -3122,7 +3160,7 @@ Done, but only ") then click Recompute")))) (FB.DEPTHCOMMAND - (LAMBDA (FBROWSER) (* \; "Edited 1-Feb-88 13:54 by bvm:") + (LAMBDA (FBROWSER) (* \; "Edited 1-Feb-88 13:54 by bvm:") (LET ((OLDDEPTH (|fetch| (FILEBROWSER FBDEPTH) |of| FBROWSER)) NEWDEPTH) (FB.PROMPTWPRINT FBROWSER "Current depth is " (SELECTQ OLDDEPTH @@ -3148,9 +3186,9 @@ then click Recompute")))) (|replace| (FILEBROWSER FBDEPTH) |of| FBROWSER |with| NEWDEPTH))))) (FB.SHAPECOMMAND - (LAMBDA (BROWSER) (* \; "Edited 2-Feb-88 12:02 by bvm:") + (LAMBDA (BROWSER) (* \; "Edited 2-Feb-88 12:02 by bvm:") - (* |;;| "Widen or narrow the browser so that all information is visible") + (* |;;| "Widen or narrow the browser so that all information is visible") (LET* ((WINDOW (|fetch| (FILEBROWSER BROWSERWINDOW) |of| BROWSER)) (WREG (WINDOWREGION WINDOW)) @@ -3158,7 +3196,7 @@ then click Recompute")))) (EXTENT (WINDOWPROP WINDOW 'EXTENT)) EXCESSHEIGHT MENUW) - (* |;;| "Add enough to the whole region width to compensate for the excess of the extent over the actual width, but don't get wider than the screen less a scroll bar. Using the EXTENT is not entirely correct--EXTENT's width reflects the widest line we have attempted to print, not the widest line we MIGHT print if window were scrolled to other items.") + (* |;;| "Add enough to the whole region width to compensate for the excess of the extent over the actual width, but don't get wider than the screen less a scroll bar. Using the EXTENT is not entirely correct--EXTENT's width reflects the widest line we have attempted to print, not the widest line we MIGHT print if window were scrolled to other items.") (|replace| (REGION WIDTH) |of| WREG |with| (SETQ WWIDTH (MIN (+ WWIDTH (- (|fetch| (REGION WIDTH) |of| EXTENT) @@ -3169,7 +3207,7 @@ then click Recompute")))) 0) (SETQ MENUW (CDR (|fetch| (FILEBROWSER ABORTWINDOW) |of| BROWSER )))) - |then| (* \; "Window is also taller than it needs to be--shrink it back, though not smaller than the minimum height") + |then| (* \; "Window is also taller than it needs to be--shrink it back, though not smaller than the minimum height") (|replace| (REGION HEIGHT) |of| WREG |with| (MAX (- (|fetch| (REGION HEIGHT) |of| WREG) EXCESSHEIGHT) @@ -3184,18 +3222,18 @@ then click Recompute")))) |else| (SETQ EXCESSHEIGHT NIL)) (|if| (> (|fetch| (REGION PRIGHT) |of| WREG) SCREENWIDTH) - |then| (* \; - "If we're sticking over the edge on the right, move the region leftward.") + |then| (* \; + "If we're sticking over the edge on the right, move the region leftward.") (|replace| (REGION LEFT) |of| WREG |with| (- SCREENWIDTH WWIDTH))) (RESHAPEALLWINDOWS WINDOW WREG) (|if| EXCESSHEIGHT - |then| (* \; "Silly reshaping routine tried to preserve the bottom, so scrolled the window up. Let's scroll it back down.") + |then| (* \; "Silly reshaping routine tried to preserve the bottom, so scrolled the window up. Let's scroll it back down.") (SCROLLW WINDOW 0 (- EXCESSHEIGHT)))))) (FB.REMOVE.FILE - (LAMBDA (TBROWSER FBROWSER ITEM) (* \; "Edited 25-Jan-88 17:24 by bvm") + (LAMBDA (TBROWSER FBROWSER ITEM) (* \; "Edited 25-Jan-88 17:24 by bvm") -(* |;;;| "Removes ITEM from browser display, counts its removal") +(* |;;;| "Removes ITEM from browser display, counts its removal") (LET ((N (|fetch| TI# |of| ITEM)) PREVITEM NEXTITEM NEXTNEXTITEM) @@ -3205,8 +3243,8 @@ then click Recompute")))) (SUB1 N)))) (OR (NULL (SETQ NEXTITEM (TB.NTH.ITEM TBROWSER (ADD1 N)))) (|fetch| TIUNSELECTABLE |of| NEXTITEM))) - (* \; - "ITEM is between two subdirectory lines, so remove at least the preceding line") + (* \; + "ITEM is between two subdirectory lines, so remove at least the preceding line") (TB.REMOVE.ITEM TBROWSER PREVITEM) (COND ((AND NEXTITEM (SETQ NEXTNEXTITEM (TB.NTH.ITEM TBROWSER (ADD1 N))) @@ -3214,22 +3252,22 @@ then click Recompute")))) ((EQ (|add| N -1) 1) - (* |;;| "N decremented because of the remove above. Now removing first file, so see if next file has no subdir") + (* |;;| "N decremented because of the remove above. Now removing first file, so see if next file has no subdir") (NULL.DIRECTORYP (|fetch| TIDATA |of| NEXTNEXTITEM))) (T (EQ.DIRECTORYP (|fetch| TIDATA |of| NEXTNEXTITEM) (|fetch| TIDATA |of| (TB.NTH.ITEM TBROWSER (SUB1 N))))))) - (* |;;| "The next subdirectory line is superfluous, because the file after it and the file before us have the same subdirectory") + (* |;;| "The next subdirectory line is superfluous, because the file after it and the file before us have the same subdirectory") (TB.REMOVE.ITEM TBROWSER NEXTITEM))))) (TB.REMOVE.ITEM TBROWSER ITEM) (FB.COUNT.FILE.CHANGE FBROWSER ITEM 'REMOVE)))) (FB.COUNT.FILE.CHANGE - (LAMBDA (FBROWSER ITEM FLG) (* |bvm:| "13-Oct-85 17:47") + (LAMBDA (FBROWSER ITEM FLG) (* |bvm:| "13-Oct-85 17:47") -(* |;;;| "Account for the addition or removal of ITEM from FBROWSER -- FLG is ADD or REMOVE") +(* |;;;| "Account for the addition or removal of ITEM from FBROWSER -- FLG is ADD or REMOVE") (LET ((SIGN (SELECTQ FLG (ADD 1) @@ -3254,9 +3292,9 @@ then click Recompute")))) SIZE)))))))) (FB.SETNEWPATTERN - (LAMBDA (FBROWSER PATTERN) (* \; "Edited 1-Feb-88 15:46 by bvm:") + (LAMBDA (FBROWSER PATTERN) (* \; "Edited 1-Feb-88 15:46 by bvm:") - (* |;;| "Called to install a new PATTERN in a filebrowser. PATTERN should already have been passed thru DIRECTORY.FILL.PATTERN.") + (* |;;| "Called to install a new PATTERN in a filebrowser. PATTERN should already have been passed thru DIRECTORY.FILL.PATTERN.") (LET (ICON) (|replace| (FILEBROWSER PATTERN) |of| FBROWSER |with| PATTERN) @@ -3268,12 +3306,12 @@ then click Recompute")))) |with| (STRPOS ":" (UNPACKFILENAME.STRING PATTERN 'HOST))) (COND ((SETQ ICON (WINDOWPROP (|fetch| (FILEBROWSER BROWSERWINDOW) |of| FBROWSER) - 'ICONWINDOW)) (* \; "Change the icon label") + 'ICONWINDOW)) (* \; "Change the icon label") (ICONW.TITLE ICON PATTERN))) PATTERN))) (FB.GET.NEWPATTERN - (LAMBDA (BROWSER) (* \; "Edited 30-Aug-94 19:47 by jds") + (LAMBDA (BROWSER) (* \; "Edited 30-Aug-94 19:47 by jds") (FB.ALLOW.ABORT BROWSER) (LET* ((OLDPATTERN (|fetch| (FILEBROWSER PATTERN) |of| BROWSER)) (PATTERN (FB.PROMPTFORINPUT (COND @@ -3284,7 +3322,7 @@ then click Recompute")))) (PATTERN (DIRECTORY.FILL.PATTERN PATTERN)))))) (FB.OPTIONSCOMMAND - (LAMBDA (BROWSER) (* |bvm:| "13-Sep-85 16:13") + (LAMBDA (BROWSER) (* |bvm:| "13-Sep-85 16:13") (FB.PROMPTWPRINT BROWSER "Please use the Options roll-out submenu to select the option you desire."))) ) @@ -3296,7 +3334,8 @@ then click Recompute")))) (DEFINEQ (FB.GETWINDOW - (LAMBDA (WINDOW WHICH) (* \; "Edited 16-Oct-2021 15:02 by rmk:") + (LAMBDA (WINDOW WHICH) (* \; + "Edited 16-Oct-2021 15:02 by rmk:") (* |;;| "Closed function to get at filebrowser attached windows by type, without need record declarations at runtime. Helps MODERNIZE get the right regions.") @@ -3315,7 +3354,7 @@ then click Recompute")))) (DEFINEQ (FB.INFOMENU.SHADEINITIALSELECTIONS - (LAMBDA (MENUWINDOW INITIALSELECTIONS) (* \; "Edited 21-Jan-88 18:36 by bvm") + (LAMBDA (MENUWINDOW INITIALSELECTIONS) (* \; "Edited 21-Jan-88 18:36 by bvm") (LET* ((MENU (CAR (WINDOWPROP MENUWINDOW 'MENU))) (MENUITEMS (|fetch| (MENU ITEMS) |of| MENU))) (|for| SELECTION |in| INITIALSELECTIONS |do| (SHADEITEM (FB.INFO.ITEM.NAMED @@ -3324,9 +3363,9 @@ then click Recompute")))) MENUWINDOW))))) (FB.INFO.ITEM.NAMED - (LAMBDA (TAG ITEMS) (* \; "Edited 21-Jan-88 17:38 by bvm") + (LAMBDA (TAG ITEMS) (* \; "Edited 21-Jan-88 17:38 by bvm") -(* |;;;| "search list items for one with second element TAG") +(* |;;;| "search list items for one with second element TAG") (|for| ITEM |in| ITEMS |when| (STRING-EQUAL (CADR ITEM) TAG) |do| (RETURN ITEM)))) @@ -3334,8 +3373,9 @@ then click Recompute")))) (DEFINEQ (FB.MAKECOUNTERWINDOW - (LAMBDA (BROWSERWINDOW FONT WIDTH HEIGHT TITLE) (* \; "Edited 22-Feb-2021 12:41 by rmk:") - (* \; "Edited 30-Aug-94 19:47 by jds") + (LAMBDA (BROWSERWINDOW FONT WIDTH HEIGHT TITLE) (* \; + "Edited 22-Feb-2021 12:41 by rmk:") + (* \; "Edited 30-Aug-94 19:47 by jds") (LET ((COUNTERW (CREATEW (|create| REGION LEFT _ 0 BOTTOM _ 0 @@ -3351,24 +3391,24 @@ then click Recompute")))) COUNTERW) (WINDOWPROP COUNTERW 'REPAINTFN (FUNCTION FB.COUNTERW.REDISPLAYFN)) (WINDOWPROP COUNTERW 'RESHAPEFN (FUNCTION FB.COUNTERW.REDISPLAYFN)) - (WINDOWPROP COUNTERW 'PAGEFULLFN (FUNCTION NILL)) (* \; - "Set up for modernized window moving/shaping") + (WINDOWPROP COUNTERW 'PAGEFULLFN (FUNCTION NILL)) (* \; + "Set up for modernized window moving/shaping") (WINDOWPROP COUNTERW 'BUTTONEVENTFN (FUNCTION TOTOPW.MODERNIZE)) (WINDOWPROP BROWSERWINDOW 'TOPMARGIN 0) COUNTERW))) (FB.COUNTERW.REDISPLAYFN - (LAMBDA (COUNTERWINDOW) (* \; "Edited 4-Feb-88 15:11 by bvm:") + (LAMBDA (COUNTERWINDOW) (* \; "Edited 4-Feb-88 15:11 by bvm:") (LET ((BROWSER (WINDOWPROP (MAINWINDOW COUNTERWINDOW T) 'FILEBROWSER))) (|if| (|fetch| (FILEBROWSER FBREADY) |of| BROWSER) - |then| (* \; - "Don't do this if user reshapes while we're still enumerating.") + |then| (* \; + "Don't do this if user reshapes while we're still enumerating.") (CLEARW COUNTERWINDOW) (FB.DISPLAY.COUNTERS BROWSER))))) (FB.UPDATE.COUNTERS - (LAMBDA (FBROWSER TYPE) (* \; "Edited 30-Aug-94 19:48 by jds") + (LAMBDA (FBROWSER TYPE) (* \; "Edited 30-Aug-94 19:48 by jds") (LET* ((COUNTERW (|fetch| (FILEBROWSER COUNTERWINDOW) |of| FBROWSER)) (XPOSPAIRS (|fetch| (FILEBROWSER COUNTERPOSITIONS) |of| FBROWSER)) (TOTAL (|fetch| (FILEBROWSER TOTALFILES) |of| FBROWSER)) @@ -3382,8 +3422,8 @@ then click Recompute")))) ((|fetch| (FILEBROWSER SHOWUNDELETED?) |of| FBROWSER) (FB.COUNTER.STRING FBROWSER (IDIFFERENCE TOTAL DEL) (IDIFFERENCE TOTALPAGES DELPAGES))) - ((NEQ TYPE 'DELETED) (* \; - "Don't need to update total if only deleted count changed") + ((NEQ TYPE 'DELETED) (* \; + "Don't need to update total if only deleted count changed") (FB.COUNTER.STRING FBROWSER TOTAL TOTALPAGES))) (AND (NEQ TYPE 'TOTAL) (FB.COUNTER.STRING FBROWSER DEL DELPAGES)))) @@ -3401,7 +3441,7 @@ then click Recompute")))) 'REPLACE))))) (FB.DISPLAY.COUNTERS - (LAMBDA (FBROWSER) (* \; "Edited 30-Aug-94 19:48 by jds") + (LAMBDA (FBROWSER) (* \; "Edited 30-Aug-94 19:48 by jds") (LET* ((COUNTERW (|fetch| (FILEBROWSER COUNTERWINDOW) |of| FBROWSER)) (TOTAL (|fetch| (FILEBROWSER TOTALFILES) |of| FBROWSER)) (TOTALPAGES (|fetch| (FILEBROWSER TOTALPAGES) |of| FBROWSER)) @@ -3438,12 +3478,12 @@ then click Recompute")))) (SETQ PAGESTRING "")) ((IGREATERP (PLUS MAXWIDTH (STRINGWIDTH (SETQ PAGESTRING " pages") COUNTERFONT)) - THRESHOLDWIDTH) (* \; "Try a shorter word") + THRESHOLDWIDTH) (* \; "Try a shorter word") (SETQ PAGESTRING " pgs"))) (COND ((IGREATERP (PLUS MAXWIDTH (STRINGWIDTH PAGESTRING COUNTERFONT)) - THRESHOLDWIDTH) (* \; - "The long labels are too long, so abbreviate them. Only have to do this for very narrow windows") + THRESHOLDWIDTH) (* \; + "The long labels are too long, so abbreviate them. Only have to do this for very narrow windows") (|for| LAB |in| LABELS |do| (RPLACA LAB (CONCAT (SUBSTRING (CAR LAB) 1 3) ": "))))) @@ -3469,7 +3509,7 @@ then click Recompute")))) ))) (FB.COUNTER.STRING - (LAMBDA (FBROWSER NFILES NPAGES) (* |bvm:| "11-Sep-85 11:44") + (LAMBDA (FBROWSER NFILES NPAGES) (* |bvm:| "11-Sep-85 11:44") (COND ((|fetch| (FILEBROWSER PAGECOUNT?) |of| FBROWSER) (CONCAT NFILES " / " NPAGES)) @@ -3478,8 +3518,9 @@ then click Recompute")))) (DEFINEQ (FB.MAKEHEADINGWINDOW - (LAMBDA (BROWSERWINDOW WIDTH HEIGHT FONT) (* \; "Edited 22-Feb-2021 12:29 by rmk:") - (* \; "Edited 22-Jan-88 17:45 by bvm") + (LAMBDA (BROWSERWINDOW WIDTH HEIGHT FONT) (* \; + "Edited 22-Feb-2021 12:29 by rmk:") + (* \; "Edited 22-Jan-88 17:45 by bvm") (LET ((HEADINGW (CREATEW (|create| REGION LEFT _ 0 BOTTOM _ 0 @@ -3489,30 +3530,30 @@ then click Recompute")))) (DSPFONT FONT HEADINGW) (FB.MAKERIGIDWINDOW HEADINGW) (ATTACHWINDOW HEADINGW BROWSERWINDOW 'TOP) - (WINDOWPROP HEADINGW 'PASSTOMAINCOMS T) (* \; - "Pass ALL window ops to main window, since we look sort of like a title bar") + (WINDOWPROP HEADINGW 'PASSTOMAINCOMS T) (* \; + "Pass ALL window ops to main window, since we look sort of like a title bar") (DSPTEXTURE BLACKSHADE HEADINGW) (WINDOWPROP HEADINGW 'REPAINTFN (FUNCTION FB.HEADINGW.REDISPLAYFN)) (WINDOWPROP HEADINGW 'RESHAPEFN (FUNCTION FB.HEADINGW.RESHAPEFN)) - (* \; - "This is a white on black window") + (* \; + "This is a white on black window") (DSPOPERATION 'INVERT HEADINGW) - (DSPFILL NIL BLACKSHADE 'REPLACE HEADINGW) (* \; - "Set up for modernized window moving/shaping") + (DSPFILL NIL BLACKSHADE 'REPLACE HEADINGW) (* \; + "Set up for modernized window moving/shaping") (WINDOWPROP HEADINGW 'BUTTONEVENTFN (FUNCTION TOTOPW.MODERNIZE)) (WINDOWPROP BROWSERWINDOW 'TOPMARGIN 0) HEADINGW))) (FB.HEADINGW.REDISPLAYFN - (LAMBDA (WINDOW) (* |bvm:| "19-Sep-85 14:39") + (LAMBDA (WINDOW) (* |bvm:| "19-Sep-85 14:39") (FB.HEADINGW.DISPLAY (WINDOWPROP (WINDOWPROP WINDOW 'MAINWINDOW) 'FILEBROWSER) WINDOW))) (FB.HEADINGW.RESHAPEFN - (LAMBDA (WINDOW) (* \; "Edited 22-Jan-88 17:51 by bvm") + (LAMBDA (WINDOW) (* \; "Edited 22-Jan-88 17:51 by bvm") -(* |;;;| "Redraw the heading window after a reshape") +(* |;;;| "Redraw the heading window after a reshape") (LET ((FBROWSER (WINDOWPROP (WINDOWPROP WINDOW 'MAINWINDOW) 'FILEBROWSER))) @@ -3520,7 +3561,7 @@ then click Recompute")))) (FB.HEADINGW.DISPLAY FBROWSER WINDOW)))) (FB.HEADINGW.DISPLAY - (LAMBDA (FBROWSER WINDOW) (* \; "Edited 30-Aug-94 19:42 by jds") + (LAMBDA (FBROWSER WINDOW) (* \; "Edited 30-Aug-94 19:42 by jds") (LET* ((STREAM (WINDOWPROP WINDOW 'DSP)) (CLIP (DSPCLIPPINGREGION NIL WINDOW)) (RMARG (|fetch| (REGION RIGHT) |of| CLIP)) @@ -3529,12 +3570,12 @@ then click Recompute")))) (NEXTPOS (+ BORDER (|fetch| (FILEBROWSER INFOSTART) |of| FBROWSER))) (DEPTH (|fetch| (FILEBROWSER FBDISPLAYEDDEPTH) |of| FBROWSER)) FORMAT) - (DSPFILL CLIP BLACKSHADE 'REPLACE STREAM) (* \; "Note: title window has no border, so add the main window's border width to all x computations here.") + (DSPFILL CLIP BLACKSHADE 'REPLACE STREAM) (* \; "Note: title window has no border, so add the main window's border width to all x computations here.") (DSPRIGHTMARGIN 32000 STREAM) (|if| (< (|fetch| (REGION LEFT) |of| CLIP) NEXTPOS) - |then| (* \; - "Some of \"Name (depth n)\" field may be visible.") + |then| (* \; + "Some of \"Name (depth n)\" field may be visible.") (DSPXPOSITION (+ TB.LEFT.MARGIN BORDER) STREAM) (PRIN3 "Name" STREAM) @@ -3544,8 +3585,8 @@ then click Recompute")))) |until| (> NEXTPOS RMARG) |do| (DSPXPOSITION (|if| (LISTP (SETQ FORMAT (|fetch| (INFOFIELD INFOFORMAT) |of| SPEC))) - |then| (* \; - "Right-justified integer field, so right-justify title") + |then| (* \; + "Right-justified integer field, so right-justify title") (- (+ NEXTPOS (CADR FORMAT)) (STRINGWIDTH (|fetch| (INFOFIELD INFOLABEL) |of| SPEC) @@ -3559,13 +3600,13 @@ then click Recompute")))) (DEFINEQ (FB.ICONFN - (LAMBDA (WINDOW OLDICON POSITION) (* \; "Edited 30-Aug-94 19:48 by jds") + (LAMBDA (WINDOW OLDICON POSITION) (* \; "Edited 30-Aug-94 19:48 by jds") (OR OLDICON (TITLEDICONW FB.ICONSPEC (|fetch| (FILEBROWSER PATTERN) |of| (WINDOWPROP WINDOW 'FILEBROWSER)) FB.ICONFONT POSITION NIL NIL 'FILE)))) (FB.INFOMENU.WHENSELECTEDFN - (LAMBDA (ITEM MENU KEY) (* |bvm:| "18-Sep-85 11:51") + (LAMBDA (ITEM MENU KEY) (* |bvm:| "18-Sep-85 11:51") (LET* ((INFO (CADR ITEM)) (WINDOW (WINDOWPROP (WFROMMENU MENU) 'MAINWINDOW)) @@ -3580,30 +3621,30 @@ then click Recompute")))) (|replace| (FILEBROWSER INFOMENUCHOICES) |of| BROWSER |with| CHOSEN)))) (FB.CLOSEFN - (LAMBDA (TBROWSER WINDOW FLG) (* \; "Edited 27-Jan-88 23:52 by bvm") + (LAMBDA (TBROWSER WINDOW FLG) (* \; "Edited 27-Jan-88 23:52 by bvm") - (* |;;| "did you really want to close up shop?") + (* |;;| "did you really want to close up shop?") (RESETLST (COND ((NOT (OBTAIN.MONITORLOCK (|fetch| (FILEBROWSER FBLOCK) |of| (TB.USERDATA TBROWSER)) - T T)) (* \; "We're busy") + T T)) (* \; "We're busy") (PROMPTPRINT (CONCAT "Can't " (L-CASE FLG) " window while browser is busy")) 'DON\'T) ((NEQ (TB.NUMBER.OF.ITEMS TBROWSER 'DELETED) - 0) (* \; - "There are deleted items. Shall we expunge?") + 0) (* \; + "There are deleted items. Shall we expunge?") (SELECTQ (MENU (FB.EXPUNGE?.MENU)) - (EXPUNGE (* \; - "Do expunge in another process, not here in mouse") + (EXPUNGE (* \; + "Do expunge in another process, not here in mouse") (FUNCTION FB.CLOSE&EXPUNGE)) (NOEXPUNGE NIL) 'DON\'T)))))) (FB.EXPUNGE?.MENU - (LAMBDA NIL (* \; "Edited 1-Feb-88 15:25 by bvm:") + (LAMBDA NIL (* \; "Edited 1-Feb-88 15:25 by bvm:") (OR FB.EXPUNGE?MENU (SETQ FB.EXPUNGE?MENU (|create| MENU @@ -3614,16 +3655,16 @@ then click Recompute")))) MENUFONT _ FB.BROWSERFONT))))) (FB.AFTERCLOSEFN - (LAMBDA (TBROWSER WINDOW) (* |bvm:| "12-Sep-85 15:12") + (LAMBDA (TBROWSER WINDOW) (* |bvm:| "12-Sep-85 15:12") -(* |;;;| "Snap circularities before window vanishes") +(* |;;;| "Snap circularities before window vanishes") (LET ((FBROWSER (WINDOWPROP WINDOW 'FILEBROWSER NIL))) (|replace| (FILEBROWSER TABLEBROWSER) |of| FBROWSER |with| NIL) (TB.USERDATA TBROWSER NIL)))) (FB.CLOSE&EXPUNGE - (LAMBDA (TBROWSER WINDOW FLG) (* \; "Edited 1-Feb-88 16:37 by bvm:") + (LAMBDA (TBROWSER WINDOW FLG) (* \; "Edited 1-Feb-88 16:37 by bvm:") (LET ((BROWSER (TB.USERDATA TBROWSER)) MENU ITEM) (|find| W |in| (ATTACHEDWINDOWS WINDOW) @@ -3635,7 +3676,7 @@ then click Recompute")))) (COND ((FB.EXPUNGECOMMAND BROWSER NIL NIL NIL FLG) - (* |;;| "Expunge succeeded. Unshade the Expunge item and get rid of Abort before we shrink, or else they will still be shaded/Open when we expand") + (* |;;| "Expunge succeeded. Unshade the Expunge item and get rid of Abort before we shrink, or else they will still be shaded/Open when we expand") (FB.FINISH.COMMAND BROWSER ITEM MENU) (TB.FINISH.CLOSE TBROWSER (|fetch| (FILEBROWSER BROWSERWINDOW) |of| @@ -3645,7 +3686,7 @@ then click Recompute")))) (DEFINEQ (FB.HARDCOPY.DIRECTORY - (LAMBDA (WINDOW IMAGESTREAM) (* \; "Edited 30-Aug-94 19:42 by jds") + (LAMBDA (WINDOW IMAGESTREAM) (* \; "Edited 30-Aug-94 19:42 by jds") (RESETLST (LET ((FBROWSER (WINDOWPROP WINDOW 'FILEBROWSER)) @@ -3657,22 +3698,22 @@ then click Recompute")))) (MAINFONT FB.HARDCOPY.FONT) (DIRFONT (OR FB.HARDCOPY.DIRECTORY.FONT ITALICFONT)) FDATA INFO W LABEL COLUMNSPECS INFOLMARG PROPS FILES TITLE PAD DATEWIDTH) - (ALLOW.BUTTON.EVENTS) (* \; - "Ensure that we are no longer the mouse process (should be redundant)") - (FB.MAKE.BROWSER.BUSY FBROWSER) (* \; - "Grab the browser, so it doesn't change out from under us") - (FB.ALLOW.ABORT FBROWSER) (* \; "Enable abort button") + (ALLOW.BUTTON.EVENTS) (* \; + "Ensure that we are no longer the mouse process (should be redundant)") + (FB.MAKE.BROWSER.BUSY FBROWSER) (* \; + "Grab the browser, so it doesn't change out from under us") + (FB.ALLOW.ABORT FBROWSER) (* \; "Enable abort button") (FB.PROMPTWPRINT FBROWSER T "Producing hardcopy listing of directory...") (|if| MAINFONT - |then| (* \; - "User-settable font for listing to appear in") + |then| (* \; + "User-settable font for listing to appear in") (DSPFONT MAINFONT IMAGESTREAM)) - (SETQ MAINFONT (DSPFONT NIL IMAGESTREAM)) (* \; "Get coerced font, or default") + (SETQ MAINFONT (DSPFONT NIL IMAGESTREAM)) (* \; "Get coerced font, or default") (SETQ TITLE (CONCAT "Directory of " (|fetch| (FILEBROWSER PATTERN) |of| FBROWSER ))) (STREAMPROP IMAGESTREAM 'PRINTOPTIONS (LIST* 'DOCUMENT.NAME TITLE (STREAMPROP IMAGESTREAM 'PRINTOPTIONS))) - (* \; "Give the document a nice name") + (* \; "Give the document a nice name") (FB.HARDCOPY.PRINT.TITLE (CONCAT "Directory of " (WINDOWPROP (|fetch| (FILEBROWSER COUNTERWINDOW ) @@ -3687,7 +3728,7 @@ then click Recompute")))) |of| FBROWSER) " pages") IMAGESTREAM LMARG RMARG)) - (SETQ PAD (TIMES SCALE 12)) (* \; "Space between columns") + (SETQ PAD (TIMES SCALE 12)) (* \; "Space between columns") (|for| ITEM |in| (SETQ FILES (TB.COLLECT.ITEMS TBROWSER)) |unless| (|fetch| (FBFILEDATA DIRECTORYP) |of| (SETQ FDATA (|fetch| TIDATA @@ -3699,7 +3740,7 @@ then click Recompute")))) (SETQ COLUMNSPECS (|for| SPEC |in| (|fetch| (FILEBROWSER INFODISPLAYED) |of| FBROWSER) |as| INDEX |from| 0 |bind| PROTO - |collect| (* \; "For each bit of info to print, compute how much space we expect it to need. Second slot filled in below") + |collect| (* \; "For each bit of info to print, compute how much space we expect it to need. Second slot filled in below") (LIST* (+ PAD (|if| (SETQ PROTO (|fetch| (INFOFIELD INFOPROTOTYPE) |of| SPEC)) |then| (STRINGWIDTH PROTO IMAGESTREAM) @@ -3714,33 +3755,33 @@ then click Recompute")))) (SETQ INFOLMARG (- RMARG (|for| PAIR |in| COLUMNSPECS |sum| (CAR PAIR)))) (LET ((NAMERIGHTMARG (+ LMARG MAXNAMEWIDTH PAD))) (|if| (< NAMERIGHTMARG INFOLMARG) - |then| (* \; - "Enough space for name plus all info with room left over") + |then| (* \; + "Enough space for name plus all info with room left over") (SETQ INFOLMARG NAMERIGHTMARG) |elseif| (> INFOLMARG LMARG) - |then| (* \; - "Ok, there's enough space for info, though it might end up on a separate line from file name") - |else| (* \; - "Ugh, want to print more info than fits on a line. Punt") + |then| (* \; + "Ok, there's enough space for info, though it might end up on a separate line from file name") + |else| (* \; + "Ugh, want to print more info than fits on a line. Punt") (SETQ INFOLMARG NAMERIGHTMARG) - (DSPRIGHTMARGIN RMARG IMAGESTREAM) (* \; "make it wrap after all"))) + (DSPRIGHTMARGIN RMARG IMAGESTREAM) (* \; "make it wrap after all"))) (LET ((FIRSTINFOCOLUMN INFOLMARG)) (|for| PAIR |in| COLUMNSPECS - |do| (* \; "Print headers") + |do| (* \; "Print headers") (SETQ LABEL (|fetch| (INFOFIELD INFOLABEL) |of| (CDDR PAIR))) (SETQ W (FIXR (CAR PAIR))) (DSPXPOSITION (+ FIRSTINFOCOLUMN (IQUOTIENT (- (- W PAD) (STRINGWIDTH LABEL IMAGESTREAM) ) 2)) - IMAGESTREAM) (* \; "Center the label") + IMAGESTREAM) (* \; "Center the label") (PRIN3 LABEL IMAGESTREAM) (RPLACA PAIR (PROG1 FIRSTINFOCOLUMN (|add| FIRSTINFOCOLUMN W))) - (* \; - "First element is left position of the entry ") + (* \; + "First element is left position of the entry ") (|if| (|fetch| (INFOFIELD INFOFORMAT) |of| (CDDR PAIR)) - |then| (* \; - "Second element is right margin (for right-justified items)") + |then| (* \; + "Second element is right margin (for right-justified items)") (RPLACA (CDR PAIR) (- FIRSTINFOCOLUMN PAD)))) (TERPRI IMAGESTREAM) @@ -3766,13 +3807,13 @@ then click Recompute")))) (AND (SETQ INFO (CAR FILEINFO)) (> (+ HERE (TIMES SCALE 6)) (- NEXT (STRINGWIDTH INFO MAINFONT)))))) - |then| (* \; "name overran start of info--go to next line. The complex second clause lets us cheat in the case where the first info column is right-justified and will turn out to be short enough to leave space") + |then| (* \; "name overran start of info--go to next line. The complex second clause lets us cheat in the case where the first info column is right-justified and will turn out to be short enough to leave space") (TERPRI IMAGESTREAM)) (|for| PAIR |in| COLUMNSPECS |as| INFO |in| FILEINFO |do| (DSPXPOSITION (COND ((SETQ NEXT (CADR PAIR)) - (* \; - "Get numbers to line up right justified") + (* \; + "Get numbers to line up right justified") (- NEXT (STRINGWIDTH INFO MAINFONT))) (T (CAR PAIR))) IMAGESTREAM) @@ -3784,26 +3825,26 @@ then click Recompute")))) (DSPRIGHTMARGIN RMARG IMAGESTREAM))))) (FB.HARDCOPY.PRINT.TITLE - (LAMBDA (TITLE IMAGESTREAM LMARG RMARG) (* \; "Edited 5-Mar-87 17:59 by bvm:") + (LAMBDA (TITLE IMAGESTREAM LMARG RMARG) (* \; "Edited 5-Mar-87 17:59 by bvm:") (DSPXPOSITION (+ LMARG (IQUOTIENT (- RMARG (+ LMARG (STRINGWIDTH TITLE IMAGESTREAM))) 2)) IMAGESTREAM) (|printout| IMAGESTREAM TITLE T T))) (FB.HARDCOPY.MAXWIDTH - (LAMBDA (FILES ATTRINDEX FONT DATEP) (* \; "Edited 27-Jan-88 13:10 by bvm") + (LAMBDA (FILES ATTRINDEX FONT DATEP) (* \; "Edited 27-Jan-88 13:10 by bvm") - (* |;;| "Compute maximum width of values of the ATTRIBUTE prop of each of the items in FILES.") + (* |;;| "Compute maximum width of values of the ATTRIBUTE prop of each of the items in FILES.") - (* |;;| - "If DATEP is true, we assume all dates are created equal, and just return the first one") + (* |;;| + "If DATEP is true, we assume all dates are created equal, and just return the first one") (|if| (AND DATEP (NEQ (CHARWIDTH (CHARCODE W) FONT) (CHARWIDTH (CHARCODE \i) FONT))) - |then| (* \; - "Variable-width font, let's compute it for real") + |then| (* \; + "Variable-width font, let's compute it for real") (SETQ DATEP NIL)) (|for| ITEM |in| FILES |bind| (MAXWIDTH _ 0) INFO WIDTH @@ -3823,117 +3864,120 @@ then click Recompute")))) (RECORD INFOFIELD (INFONAME INFOLABEL INFOWIDTH INFOFORMAT INFOPROTOTYPE)) -(DATATYPE FBFILEDATA ((FILENAME POINTER) (* \; "Full name of this file") - (FILEINFO POINTER) (* \; "Plist of attributes") - (VERSIONLESSNAME POINTER) (* \; "FILENAME sans version") - (DIRECTORYP FLAG) (* \; "True if it's a directory line") - (HASDIRPREFIX FLAG) (* \; - "True if it has a directory prefix beyond that in common to all the files") - (DIRECTORYFILEP FLAG) (* \; - "True if the \"file\" in this item is actually a subdirectory") - (SIZE POINTER) (* \; "Size of file, for stats") - (FILEDEPTH BYTE) (* \; - "Number of levels of subdirectory beneath the main pattern--zero for files at that level") - (SORTVALUE POINTER) (* \; - "Cached value by which we are sorting the dir.") - (SUBDIREND WORD) (* \; - "Index of last char in subdirectory, or zero if HASDIRPREFIX is false") - (STARTOFPNAME WORD) (* \; - "Start of name for printing purposes. Same as STARTOFNAME when browser sorted by name") - (VERSION WORD) (* \; "Version, or zero if none") - (STARTOFNAME WORD) (* \; - "Index beyond all directory fields") - DUMMY) - (ACCESSFNS FBFILEDATA ((PRINTNAME (SUBSTRING (FETCH (FBFILEDATA FILENAME) - OF DATUM) - (FETCH (FBFILEDATA STARTOFPNAME) - OF DATUM))) - (SUBDIRECTORY (SUBSTRING (FETCH (FBFILEDATA FILENAME) - OF DATUM) - 1 - (FETCH (FBFILEDATA SUBDIREND) - OF DATUM)))))) +(DATATYPE FBFILEDATA ((FILENAME POINTER) (* \; "Full name of this file") + (FILEINFO POINTER) (* \; "Plist of attributes") + (VERSIONLESSNAME POINTER) (* \; "FILENAME sans version") + (DIRECTORYP FLAG) (* \; "True if it's a directory line") + (HASDIRPREFIX FLAG) (* \; + "True if it has a directory prefix beyond that in common to all the files") + (DIRECTORYFILEP FLAG) (* \; + "True if the \"file\" in this item is actually a subdirectory") + (SIZE POINTER) (* \; "Size of file, for stats") + (FILEDEPTH BYTE) (* \; + "Number of levels of subdirectory beneath the main pattern--zero for files at that level") + (SORTVALUE POINTER) (* \; + "Cached value by which we are sorting the dir.") + (SUBDIREND WORD) (* \; + "Index of last char in subdirectory, or zero if HASDIRPREFIX is false") + (STARTOFPNAME WORD) (* \; + "Start of name for printing purposes. Same as STARTOFNAME when browser sorted by name") + (VERSION WORD) (* \; "Version, or zero if none") + (STARTOFNAME WORD) (* \; + "Index beyond all directory fields") + DUMMY) + (ACCESSFNS FBFILEDATA ((PRINTNAME (SUBSTRING (FETCH (FBFILEDATA FILENAME + ) + OF DATUM) + (FETCH (FBFILEDATA STARTOFPNAME + ) OF DATUM))) + (SUBDIRECTORY (SUBSTRING (FETCH (FBFILEDATA + FILENAME) + OF DATUM) + 1 + (FETCH (FBFILEDATA SUBDIREND + ) OF + DATUM)))))) -(DATATYPE FILEBROWSER ((NOSUBDIRECTORIES FLAG) (* \; - "True if we don't want separate subdirectory lines -- subdirs then included in name") - (NSPATTERN? FLAG) (* \; "True if host is an ns host") - (SHOWUNDELETED? FLAG) (* \; - "True if counter window should show `Undeleted' rather than `Total' counts") - (PATTERNPARSED? FLAG) (* \; - "True if PREPAREDPATTERN, NAMESTART, DIRECTORYSTART are valid") - (SORTBYDATE FLAG) (* \; - "True if SORTATTRIBUTE is one of the date attributes") - (FBREADY FLAG) (* \; "False while FB is enumerating.") - (ABORTING FLAG) (* \; - "True if enumeration is being aborted") - (FIXEDTITLE FLAG) (* \; "True if caller supplied title") - (FBCOMPUTEDDEPTH BYTE) (* \; - "Depth at the time we enumerated directory (zero for infinite)") - (FBDISPLAYEDDEPTH BYTE) (* \; - "Depth we are currently displaying (zero for infinite)") - (TABLEBROWSER POINTER) (* \; - "Pointer to TABLEBROWSER object controlling the browser") - (BROWSERWINDOW POINTER) (* \; "Main window") - (COUNTERWINDOW POINTER) (* \; - "Window that counts files, pages, deletions") - (HEADINGWINDOW POINTER) (* \; - "Window with headings for browser columns") - (INFOMENUW POINTER) (* \; - "Window containing choices for info to be displayed, or NIL if none yet") - (PROMPTWINDOW POINTER) (* \; "GETPROMPTWINDOW BROWSERWINDOW") - (INFODISPLAYED POINTER) (* \; - "List of attribute specs to be displayed") - (PATTERN POINTER) (* \; - "Directory pattern being enumerated") - (PREPAREDPATTERN POINTER) (* \; "DIRECTORY.MATCH.SETUP of same") - (SEEWINDOW POINTER) (* \; - "Primary window used by FAST SEE command") - (BROWSERFONT POINTER) (* \; "Font of BROWSERWINDOW") - (SORTBY POINTER) (* \; - "Sorting function or NIL for default sort") - (NAMESTART WORD) (* \; - "Index of first character in file name beyond the common prefix shared by all") - (DIRECTORYSTART WORD) (* \; - "Index of first character of directory in file names") - (INFOSTART WORD) (* \; - "X position in browser where first col of info is displayed") - (NAMEOVERHEAD WORD) (* \; - "This plus width of name gives is how much to allow before INFOSTART") - (OVERFLOWSPACING WORD) (* \; - "Increment between sizes considered for INFOSTART") - (DIGITWIDTH WORD) - (TOTALFILES WORD) (* \; - "Total number of files, deleted files, pages, deleted pages at the moment") - (DELETEDFILES WORD) - (TOTALPAGES POINTER) - (DELETEDPAGES POINTER) - (PAGECOUNT? POINTER) (* \; - "True if INFOCHOICES includes SIZE or LENGTH, so that we can count pages") - (COUNTERPOSITIONS POINTER) (* \; - "List of pairs (left right) describing regions where the values of the counters are displayed") - (COUNTERPAGESTRING POINTER) (* \; - "String to print after file/page count") - (OVERFLOWWIDTHS POINTER) (* \; - "List of (xpos occurrences) describing files whose names exceed default INFOSTART") - (INFOMENUCHOICES POINTER) (* \; - "Selections user has made in Info window, not necessarily the info currently displayed") - (UPDATEPROC POINTER) (* \; - "Process doing an Update (Recompute)") - (DEFAULTDIR POINTER) (* \; - "Default directory for destination of Copy/Rename") - (SORTATTRIBUTE POINTER) (* \; - "Attribute being sorted on, or NIL if by name") - (SORTMENU POINTER) - (FBLOCK POINTER) (* \; - "Lock acquired by filebrowser operations") - (SORTINDEX WORD) (* \; - "Index (zero-based) in file info of the sort attribute") - (SIZEINDEX WORD) (* \; "Index of size attribute") - (FBDEPTH POINTER) (* \; - "Enumeration depth, or NIL for default") - (ABORTWINDOW POINTER) (* \; - "Dotted pair of (abortwindow . menuw) for this browser's abort window.") - DUMMY)) +(DATATYPE FILEBROWSER ((NOSUBDIRECTORIES FLAG) (* \; + "True if we don't want separate subdirectory lines -- subdirs then included in name") + (NSPATTERN? FLAG) (* \; "True if host is an ns host") + (SHOWUNDELETED? FLAG) (* \; + "True if counter window should show `Undeleted' rather than `Total' counts") + (PATTERNPARSED? FLAG) (* \; + "True if PREPAREDPATTERN, NAMESTART, DIRECTORYSTART are valid") + (SORTBYDATE FLAG) (* \; + "True if SORTATTRIBUTE is one of the date attributes") + (FBREADY FLAG) (* \; "False while FB is enumerating.") + (ABORTING FLAG) (* \; + "True if enumeration is being aborted") + (FIXEDTITLE FLAG) (* \; "True if caller supplied title") + (FBCOMPUTEDDEPTH BYTE) (* \; + "Depth at the time we enumerated directory (zero for infinite)") + (FBDISPLAYEDDEPTH BYTE) (* \; + "Depth we are currently displaying (zero for infinite)") + (TABLEBROWSER POINTER) (* \; + "Pointer to TABLEBROWSER object controlling the browser") + (BROWSERWINDOW POINTER) (* \; "Main window") + (COUNTERWINDOW POINTER) (* \; + "Window that counts files, pages, deletions") + (HEADINGWINDOW POINTER) (* \; + "Window with headings for browser columns") + (INFOMENUW POINTER) (* \; + "Window containing choices for info to be displayed, or NIL if none yet") + (PROMPTWINDOW POINTER) (* \; "GETPROMPTWINDOW BROWSERWINDOW") + (INFODISPLAYED POINTER) (* \; + "List of attribute specs to be displayed") + (PATTERN POINTER) (* \; + "Directory pattern being enumerated") + (PREPAREDPATTERN POINTER) (* \; "DIRECTORY.MATCH.SETUP of same") + (SEEWINDOW POINTER) (* \; + "Primary window used by FAST SEE command") + (BROWSERFONT POINTER) (* \; "Font of BROWSERWINDOW") + (SORTBY POINTER) (* \; + "Sorting function or NIL for default sort") + (NAMESTART WORD) (* \; + "Index of first character in file name beyond the common prefix shared by all") + (DIRECTORYSTART WORD) (* \; + "Index of first character of directory in file names") + (INFOSTART WORD) (* \; + "X position in browser where first col of info is displayed") + (NAMEOVERHEAD WORD) (* \; + "This plus width of name gives is how much to allow before INFOSTART") + (OVERFLOWSPACING WORD) (* \; + "Increment between sizes considered for INFOSTART") + (DIGITWIDTH WORD) + (TOTALFILES WORD) (* \; + "Total number of files, deleted files, pages, deleted pages at the moment") + (DELETEDFILES WORD) + (TOTALPAGES POINTER) + (DELETEDPAGES POINTER) + (PAGECOUNT? POINTER) (* \; + "True if INFOCHOICES includes SIZE or LENGTH, so that we can count pages") + (COUNTERPOSITIONS POINTER) (* \; + "List of pairs (left right) describing regions where the values of the counters are displayed") + (COUNTERPAGESTRING POINTER) (* \; + "String to print after file/page count") + (OVERFLOWWIDTHS POINTER) (* \; + "List of (xpos occurrences) describing files whose names exceed default INFOSTART") + (INFOMENUCHOICES POINTER) (* \; + "Selections user has made in Info window, not necessarily the info currently displayed") + (UPDATEPROC POINTER) (* \; + "Process doing an Update (Recompute)") + (DEFAULTDIR POINTER) (* \; + "Default directory for destination of Copy/Rename") + (SORTATTRIBUTE POINTER) (* \; + "Attribute being sorted on, or NIL if by name") + (SORTMENU POINTER) + (FBLOCK POINTER) (* \; + "Lock acquired by filebrowser operations") + (SORTINDEX WORD) (* \; + "Index (zero-based) in file info of the sort attribute") + (SIZEINDEX WORD) (* \; "Index of size attribute") + (FBDEPTH POINTER) (* \; + "Enumeration depth, or NIL for default") + (ABORTWINDOW POINTER) (* \; + "Dotted pair of (abortwindow . menuw) for this browser's abort window.") + DUMMY)) ) (/DECLAREDATATYPE 'FBFILEDATA @@ -4021,24 +4065,25 @@ then click Recompute")))) (DECLARE\: EVAL@COMPILE (PUTPROPS NULL.VERSIONP MACRO ((V) - (EQ V 0))) + (EQ V 0))) (PUTPROPS NULL.DIRECTORYP MACRO ((FILEDATA) - (EQ (FETCH (FBFILEDATA SUBDIREND) OF FILEDATA) - 0))) + (EQ (FETCH (FBFILEDATA SUBDIREND) OF FILEDATA) + 0))) (PUTPROPS EQ.DIRECTORYP MACRO (OPENLAMBDA (FD1 FD2) - (STRING-EQUAL (|fetch| (FBFILEDATA FILENAME) |of| FD1) - (|fetch| (FBFILEDATA FILENAME) |of| FD2) - :END1 - (|fetch| (FBFILEDATA SUBDIREND) |of| FD1) - :END2 - (|fetch| (FBFILEDATA SUBDIREND) |of| FD2)))) + (STRING-EQUAL (|fetch| (FBFILEDATA FILENAME) |of| + FD1) + (|fetch| (FBFILEDATA FILENAME) |of| FD2) + :END1 + (|fetch| (FBFILEDATA SUBDIREND) |of| FD1) + :END2 + (|fetch| (FBFILEDATA SUBDIREND) |of| FD2)))) (PUTPROPS NULL.FIELDP MACRO (OPENLAMBDA (STR) - (OR (NULL STR) - (EQ (NCHARS STR) - 0)))) + (OR (NULL STR) + (EQ (NCHARS STR) + 0)))) ) (DECLARE\: DOEVAL@COMPILE DONTCOPY @@ -4131,67 +4176,67 @@ then click Recompute")))) (ADDTOVAR SYSTEMRECLST (DATATYPE FILEBROWSER ((NOSUBDIRECTORIES FLAG) - (NSPATTERN? FLAG) - (SHOWUNDELETED? FLAG) - (PATTERNPARSED? FLAG) - (SORTBYDATE FLAG) - (FBREADY FLAG) - (ABORTING FLAG) - (FIXEDTITLE FLAG) - (FBCOMPUTEDDEPTH BYTE) - (FBDISPLAYEDDEPTH BYTE) - (TABLEBROWSER POINTER) - (BROWSERWINDOW POINTER) - (COUNTERWINDOW POINTER) - (HEADINGWINDOW POINTER) - (INFOMENUW POINTER) - (PROMPTWINDOW POINTER) - (INFODISPLAYED POINTER) - (PATTERN POINTER) - (PREPAREDPATTERN POINTER) - (SEEWINDOW POINTER) - (BROWSERFONT POINTER) - (SORTBY POINTER) - (NAMESTART WORD) - (DIRECTORYSTART WORD) - (INFOSTART WORD) - (NAMEOVERHEAD WORD) - (OVERFLOWSPACING WORD) - (DIGITWIDTH WORD) - (TOTALFILES WORD) - (DELETEDFILES WORD) - (TOTALPAGES POINTER) - (DELETEDPAGES POINTER) - (PAGECOUNT? POINTER) - (COUNTERPOSITIONS POINTER) - (COUNTERPAGESTRING POINTER) - (OVERFLOWWIDTHS POINTER) - (INFOMENUCHOICES POINTER) - (UPDATEPROC POINTER) - (DEFAULTDIR POINTER) - (SORTATTRIBUTE POINTER) - (SORTMENU POINTER) - (FBLOCK POINTER) - (SORTINDEX WORD) - (SIZEINDEX WORD) - (FBDEPTH POINTER) - (ABORTWINDOW POINTER) - DUMMY)) + (NSPATTERN? FLAG) + (SHOWUNDELETED? FLAG) + (PATTERNPARSED? FLAG) + (SORTBYDATE FLAG) + (FBREADY FLAG) + (ABORTING FLAG) + (FIXEDTITLE FLAG) + (FBCOMPUTEDDEPTH BYTE) + (FBDISPLAYEDDEPTH BYTE) + (TABLEBROWSER POINTER) + (BROWSERWINDOW POINTER) + (COUNTERWINDOW POINTER) + (HEADINGWINDOW POINTER) + (INFOMENUW POINTER) + (PROMPTWINDOW POINTER) + (INFODISPLAYED POINTER) + (PATTERN POINTER) + (PREPAREDPATTERN POINTER) + (SEEWINDOW POINTER) + (BROWSERFONT POINTER) + (SORTBY POINTER) + (NAMESTART WORD) + (DIRECTORYSTART WORD) + (INFOSTART WORD) + (NAMEOVERHEAD WORD) + (OVERFLOWSPACING WORD) + (DIGITWIDTH WORD) + (TOTALFILES WORD) + (DELETEDFILES WORD) + (TOTALPAGES POINTER) + (DELETEDPAGES POINTER) + (PAGECOUNT? POINTER) + (COUNTERPOSITIONS POINTER) + (COUNTERPAGESTRING POINTER) + (OVERFLOWWIDTHS POINTER) + (INFOMENUCHOICES POINTER) + (UPDATEPROC POINTER) + (DEFAULTDIR POINTER) + (SORTATTRIBUTE POINTER) + (SORTMENU POINTER) + (FBLOCK POINTER) + (SORTINDEX WORD) + (SIZEINDEX WORD) + (FBDEPTH POINTER) + (ABORTWINDOW POINTER) + DUMMY)) (DATATYPE FBFILEDATA ((FILENAME POINTER) - (FILEINFO POINTER) - (VERSIONLESSNAME POINTER) - (DIRECTORYP FLAG) - (HASDIRPREFIX FLAG) - (DIRECTORYFILEP FLAG) - (SIZE POINTER) - (FILEDEPTH BYTE) - (SORTVALUE POINTER) - (SUBDIREND WORD) - (STARTOFPNAME WORD) - (VERSION WORD) - (STARTOFNAME WORD) - DUMMY)) + (FILEINFO POINTER) + (VERSIONLESSNAME POINTER) + (DIRECTORYP FLAG) + (HASDIRPREFIX FLAG) + (DIRECTORYFILEP FLAG) + (SIZE POINTER) + (FILEDEPTH BYTE) + (SORTVALUE POINTER) + (SUBDIREND WORD) + (STARTOFPNAME WORD) + (VERSION WORD) + (STARTOFNAME WORD) + DUMMY)) ) (DECLARE\: DONTEVAL@LOAD DOCOPY @@ -4199,10 +4244,10 @@ then click Recompute")))) (ADDTOVAR *ATTACHED-WINDOW-COMMAND-SYNONYMS* (HARDCOPYIMAGEW.TOFILE . HARDCOPYIMAGEW) - (HARDCOPYIMAGEW.TOPRINTER . HARDCOPYIMAGEW)) + (HARDCOPYIMAGEW.TOPRINTER . HARDCOPYIMAGEW)) (ADDTOVAR |BackgroundMenuCommands| ("FileBrowser" '(FILEBROWSER) - "Opens a filebrowser window; prompts for pattern")) + "Opens a filebrowser window; prompts for pattern")) (RPAQQ |BackgroundMenu| NIL) @@ -4218,51 +4263,51 @@ then click Recompute")))) (PUTPROPS FILEBROWSER COPYRIGHT ("Venue & Xerox Corporation" 1983 1984 1985 1986 1987 1988 1989 1990 1991 1993 1994 1999 2000 2001 2021)) (DECLARE\: DONTCOPY - (FILEMAP (NIL (28447 51200 (FB 28457 . 29530) (FB.COPYBINARYCOMMAND 29532 . 29878) (FB.COPYTEXTCOMMAND - 29880 . 30222) (FILEBROWSER 30224 . 43330) (FB.TABLEBROWSER 43332 . 43549) (FB.SELECTEDFILES 43551 . -44188) (FB.FETCHFILENAME 44190 . 44582) (FB.DIRECTORYP 44584 . 44912) (FB.PROMPTWPRINT 44914 . 45960) -(FB.PROMPTW.FORMAT 45962 . 46699) (FB.PROMPTFORINPUT 46701 . 48953) (FB.YES-OR-NO-P 48955 . 49989) ( -FB.ALLOW.ABORT 49991 . 50845) (\\FB.HARDCOPY.TOFILE.EXTENSION 50847 . 51198)) (51224 52177 (FB.STARTUP - 51234 . 51749) (FB.MAKERIGIDWINDOW 51751 . 52175)) (52178 57550 (FB.PRINTFN 52188 . 57341) (FB.COPYFN - 57343 . 57548)) (57600 63642 (FB.MENU.WHENSELECTEDFN 57610 . 57968) (FB.COMMANDSELECTEDFN 57970 . -59509) (FB.SUBITEMP 59511 . 59946) (FB.MAKE.BROWSER.BUSY 59948 . 60686) (FB.FINISH.COMMAND 60688 . -62653) (FB.HANDLE.ABORT.BUTTON 62655 . 63640)) (63643 69159 (FB.DELETECOMMAND 63653 . 63934) ( -FB.DELVERCOMMAND 63936 . 67129) (FB.IS.NOT.SUBDIRECTORY.ITEM 67131 . 67312) (FB.DELVER.FILES 67314 . -68403) (FB.DELETE.FILE 68405 . 69157)) (69160 70485 (FB.UNDELETECOMMAND 69170 . 69455) ( -FB.UNDELETEALLCOMMAND 69457 . 69736) (FB.UNDELETE.FILE 69738 . 70483)) (70486 94667 (FB.COPYCOMMAND -70496 . 70765) (FB.RENAMECOMMAND 70767 . 71042) (FB.COPY/RENAME.COMMAND 71044 . 71967) ( -FB.COPY/RENAME.ONE 71969 . 74291) (FB.COPY/RENAME.MANY 74293 . 80513) (FB.MERGE.DIRECTORIES 80515 . -80933) (FB.GREATEST.PREFIX 80935 . 82291) (FB.MAYBE.INSERT.FILE 82293 . 89733) (FB.GET.NEW.FILE.SPEC -89735 . 93566) (FB.CANONICAL.DIRECTORY 93568 . 94665)) (94668 102452 (FB.HARDCOPYCOMMAND 94678 . 95808 -) (FB.HARDCOPY.TOFILE 95810 . 102450)) (102453 112330 (FB.EDITCOMMAND 102463 . 103264) ( -FB.EDITCOMMAND.ONEFILE 103266 . 106546) (FB.EDITLISPFILE 106548 . 107587) (FB.BROWSECOMMAND 107589 . -112328)) (112331 124124 (FB.FASTSEECOMMAND 112341 . 115791) (FB.FASTSEE.ONEFILE 115793 . 118822) ( -FB.SEEFULLFN 118824 . 122955) (FB.SEEBUTTONFN 122957 . 124122)) (124125 125871 (FB.LOADCOMMAND 124135 - . 124642) (FB.COMPILECOMMAND 124644 . 125182) (FB.OPERATE.ON.FILES 125184 . 125869)) (125872 173645 ( -FB.UPDATECOMMAND 125882 . 126107) (FB.FIX-DIRECTORY-DATES 126109 . 126918) (FB.MAYBE.EXPUNGE 126920 . -127915) (FB.UPDATEBROWSERITEMS 127917 . 141132) (FB.DATE 141134 . 141709) (FB.ADJUST.DATE.WIDTH 141711 - . 144679) (FB.SET.BROWSER.TITLE 144681 . 145617) (FB.MAYBE.WIDEN.NAMES 145619 . 147738) ( -FB.SET.DEFAULT.NAME.WIDTH 147740 . 149104) (FB.CREATE.FILEBUCKET 149106 . 156326) ( -FB.CHECK.NAME.LENGTH 156328 . 158749) (FB.ADD.FILEGROUP 158751 . 160278) (FB.INSERT.DIRECTORY 160280 - . 160518) (FB.MAKE.SUBDIRECTORY.ITEM 160520 . 161929) (FB.ADD.FILE 161931 . 162544) (FB.INSERT.FILE -162546 . 165958) (FB.ANALYZE.PATTERN 165960 . 171224) (FB.CANONICALIZE.PATTERN 171226 . 172538) ( -FB.GETALLFILEINFO 172540 . 173643)) (173646 181805 (FB.SORT.VERSIONS 173656 . 176427) ( -FB.DECREASING.VERSION 176429 . 177098) (FB.INCREASING.VERSION 177100 . 177721) ( -FB.NAMES.DECREASING.VERSION 177723 . 178758) (FB.NAMES.INCREASING.VERSION 178760 . 179757) ( -FB.DECREASING.NUMERIC.ATTR 179759 . 180439) (FB.INCREASING.NUMERIC.ATTR 180441 . 181115) ( -FB.ALPHABETIC.ATTR 181117 . 181803)) (181806 191648 (FB.SORTCOMMAND 181816 . 188646) ( -FB.INSERT.SUBDIRECTORIES 188648 . 189445) (FB.GET.SORT.MENU 189447 . 191646)) (191649 207738 ( -FB.EXPUNGECOMMAND 191659 . 194178) (FB.NEWPATTERNCOMMAND 194180 . 194578) (FB.NEWINFOCOMMAND 194580 . -197346) (FB.DEPTHCOMMAND 197348 . 199123) (FB.SHAPECOMMAND 199125 . 202467) (FB.REMOVE.FILE 202469 . -204290) (FB.COUNT.FILE.CHANGE 204292 . 205737) (FB.SETNEWPATTERN 205739 . 206909) (FB.GET.NEWPATTERN -206911 . 207495) (FB.OPTIONSCOMMAND 207497 . 207736)) (207773 208760 (FB.GETWINDOW 207783 . 208758)) ( -208761 209773 (FB.INFOMENU.SHADEINITIALSELECTIONS 208771 . 209418) (FB.INFO.ITEM.NAMED 209420 . 209771 -)) (209774 219240 (FB.MAKECOUNTERWINDOW 209784 . 211246) (FB.COUNTERW.REDISPLAYFN 211248 . 211835) ( -FB.UPDATE.COUNTERS 211837 . 213909) (FB.DISPLAY.COUNTERS 213911 . 218971) (FB.COUNTER.STRING 218973 . -219238)) (219241 223884 (FB.MAKEHEADINGWINDOW 219251 . 220799) (FB.HEADINGW.REDISPLAYFN 220801 . -221067) (FB.HEADINGW.RESHAPEFN 221069 . 221445) (FB.HEADINGW.DISPLAY 221447 . 223882)) (223885 228068 -(FB.ICONFN 223895 . 224242) (FB.INFOMENU.WHENSELECTEDFN 224244 . 224974) (FB.CLOSEFN 224976 . 226179) -(FB.EXPUNGE?.MENU 226181 . 226593) (FB.AFTERCLOSEFN 226595 . 226956) (FB.CLOSE&EXPUNGE 226958 . 228066 -)) (228069 240127 (FB.HARDCOPY.DIRECTORY 228079 . 238436) (FB.HARDCOPY.PRINT.TITLE 238438 . 238764) ( -FB.HARDCOPY.MAXWIDTH 238766 . 240125))))) + (FILEMAP (NIL (32602 55483 (FB 32612 . 33747) (FB.COPYBINARYCOMMAND 33749 . 34095) (FB.COPYTEXTCOMMAND + 34097 . 34439) (FILEBROWSER 34441 . 47547) (FB.TABLEBROWSER 47549 . 47766) (FB.SELECTEDFILES 47768 . +48405) (FB.FETCHFILENAME 48407 . 48799) (FB.DIRECTORYP 48801 . 49195) (FB.PROMPTWPRINT 49197 . 50243) +(FB.PROMPTW.FORMAT 50245 . 50982) (FB.PROMPTFORINPUT 50984 . 53236) (FB.YES-OR-NO-P 53238 . 54272) ( +FB.ALLOW.ABORT 54274 . 55128) (\\FB.HARDCOPY.TOFILE.EXTENSION 55130 . 55481)) (55507 56460 (FB.STARTUP + 55517 . 56032) (FB.MAKERIGIDWINDOW 56034 . 56458)) (56461 61833 (FB.PRINTFN 56471 . 61624) (FB.COPYFN + 61626 . 61831)) (61883 68223 (FB.MENU.WHENSELECTEDFN 61893 . 62251) (FB.COMMANDSELECTEDFN 62253 . +63792) (FB.SUBITEMP 63794 . 64395) (FB.MAKE.BROWSER.BUSY 64397 . 65201) (FB.FINISH.COMMAND 65203 . +67234) (FB.HANDLE.ABORT.BUTTON 67236 . 68221)) (68224 73740 (FB.DELETECOMMAND 68234 . 68515) ( +FB.DELVERCOMMAND 68517 . 71710) (FB.IS.NOT.SUBDIRECTORY.ITEM 71712 . 71893) (FB.DELVER.FILES 71895 . +72984) (FB.DELETE.FILE 72986 . 73738)) (73741 75066 (FB.UNDELETECOMMAND 73751 . 74036) ( +FB.UNDELETEALLCOMMAND 74038 . 74317) (FB.UNDELETE.FILE 74319 . 75064)) (75067 99248 (FB.COPYCOMMAND +75077 . 75346) (FB.RENAMECOMMAND 75348 . 75623) (FB.COPY/RENAME.COMMAND 75625 . 76548) ( +FB.COPY/RENAME.ONE 76550 . 78872) (FB.COPY/RENAME.MANY 78874 . 85094) (FB.MERGE.DIRECTORIES 85096 . +85514) (FB.GREATEST.PREFIX 85516 . 86872) (FB.MAYBE.INSERT.FILE 86874 . 94314) (FB.GET.NEW.FILE.SPEC +94316 . 98147) (FB.CANONICAL.DIRECTORY 98149 . 99246)) (99249 107033 (FB.HARDCOPYCOMMAND 99259 . +100389) (FB.HARDCOPY.TOFILE 100391 . 107031)) (107034 117233 (FB.EDITCOMMAND 107044 . 107911) ( +FB.EDITCOMMAND.ONEFILE 107913 . 111317) (FB.EDITLISPFILE 111319 . 112424) (FB.BROWSECOMMAND 112426 . +117231)) (117234 129155 (FB.FASTSEECOMMAND 117244 . 120694) (FB.FASTSEE.ONEFILE 120696 . 123853) ( +FB.SEEFULLFN 123855 . 127986) (FB.SEEBUTTONFN 127988 . 129153)) (129156 130902 (FB.LOADCOMMAND 129166 + . 129673) (FB.COMPILECOMMAND 129675 . 130213) (FB.OPERATE.ON.FILES 130215 . 130900)) (130903 179088 ( +FB.UPDATECOMMAND 130913 . 131138) (FB.FIX-DIRECTORY-DATES 131140 . 132163) (FB.MAYBE.EXPUNGE 132165 . +133226) (FB.UPDATEBROWSERITEMS 133228 . 146443) (FB.DATE 146445 . 147086) (FB.ADJUST.DATE.WIDTH 147088 + . 150056) (FB.SET.BROWSER.TITLE 150058 . 151060) (FB.MAYBE.WIDEN.NAMES 151062 . 153181) ( +FB.SET.DEFAULT.NAME.WIDTH 153183 . 154547) (FB.CREATE.FILEBUCKET 154549 . 161769) ( +FB.CHECK.NAME.LENGTH 161771 . 164192) (FB.ADD.FILEGROUP 164194 . 165721) (FB.INSERT.DIRECTORY 165723 + . 165961) (FB.MAKE.SUBDIRECTORY.ITEM 165963 . 167372) (FB.ADD.FILE 167374 . 167987) (FB.INSERT.FILE +167989 . 171401) (FB.ANALYZE.PATTERN 171403 . 176667) (FB.CANONICALIZE.PATTERN 176669 . 177981) ( +FB.GETALLFILEINFO 177983 . 179086)) (179089 187248 (FB.SORT.VERSIONS 179099 . 181870) ( +FB.DECREASING.VERSION 181872 . 182541) (FB.INCREASING.VERSION 182543 . 183164) ( +FB.NAMES.DECREASING.VERSION 183166 . 184201) (FB.NAMES.INCREASING.VERSION 184203 . 185200) ( +FB.DECREASING.NUMERIC.ATTR 185202 . 185882) (FB.INCREASING.NUMERIC.ATTR 185884 . 186558) ( +FB.ALPHABETIC.ATTR 186560 . 187246)) (187249 197091 (FB.SORTCOMMAND 187259 . 194089) ( +FB.INSERT.SUBDIRECTORIES 194091 . 194888) (FB.GET.SORT.MENU 194890 . 197089)) (197092 213313 ( +FB.EXPUNGECOMMAND 197102 . 199687) (FB.NEWPATTERNCOMMAND 199689 . 200087) (FB.NEWINFOCOMMAND 200089 . +202921) (FB.DEPTHCOMMAND 202923 . 204698) (FB.SHAPECOMMAND 204700 . 208042) (FB.REMOVE.FILE 208044 . +209865) (FB.COUNT.FILE.CHANGE 209867 . 211312) (FB.SETNEWPATTERN 211314 . 212484) (FB.GET.NEWPATTERN +212486 . 213070) (FB.OPTIONSCOMMAND 213072 . 213311)) (213348 214401 (FB.GETWINDOW 213358 . 214399)) ( +214402 215414 (FB.INFOMENU.SHADEINITIALSELECTIONS 214412 . 215059) (FB.INFO.ITEM.NAMED 215061 . 215412 +)) (215415 224947 (FB.MAKECOUNTERWINDOW 215425 . 216953) (FB.COUNTERW.REDISPLAYFN 216955 . 217542) ( +FB.UPDATE.COUNTERS 217544 . 219616) (FB.DISPLAY.COUNTERS 219618 . 224678) (FB.COUNTER.STRING 224680 . +224945)) (224948 229657 (FB.MAKEHEADINGWINDOW 224958 . 226572) (FB.HEADINGW.REDISPLAYFN 226574 . +226840) (FB.HEADINGW.RESHAPEFN 226842 . 227218) (FB.HEADINGW.DISPLAY 227220 . 229655)) (229658 233841 +(FB.ICONFN 229668 . 230015) (FB.INFOMENU.WHENSELECTEDFN 230017 . 230747) (FB.CLOSEFN 230749 . 231952) +(FB.EXPUNGE?.MENU 231954 . 232366) (FB.AFTERCLOSEFN 232368 . 232729) (FB.CLOSE&EXPUNGE 232731 . 233839 +)) (233842 245900 (FB.HARDCOPY.DIRECTORY 233852 . 244209) (FB.HARDCOPY.PRINT.TITLE 244211 . 244537) ( +FB.HARDCOPY.MAXWIDTH 244539 . 245898))))) STOP diff --git a/library/FILEBROWSER.LCOM b/library/FILEBROWSER.LCOM index 5205193fe1cf35ae241a4495c53e4918cb69e361..f22d1f4f4dd711c36e8486aee85191978ceca4db 100644 GIT binary patch delta 4184 zcmc&$O>fg!6xEC9#v{I@8NNR*DX2~%nZ!wH8xRvWb|8@2t&2+R8?Ni{DWDr=n?^Y7KkkiB-X5uSRgcWpPdjVj+-`w^3=RK=iPVCz4zHZdA%|5 z?%#<&m*;?s3Th?F#km9|=F`b!noEX(4OjHWdabTjLDwJ*=5Ipr*6&x>^oDw^UT!uY zUHj|rQ&uWvMi>Zlsi>qsY*WP3sdzdugIiXcYKO!Gv$9s!?y0RbUTV6rR@3g`RZTM? zoLearz{?Sf#c+GIY^YTen11>sm*(ce5r)mB@&z%ghZs{-L-2P;&lBDfIaBJ`5>ty!!8f zC5YJquZVZkAjncFD=*yvRs^;vmX=|9Ny$s4D6c5|ooOgVBEU|AdF2W%vEFDvg8P|E zr2E3k^_C75T{D_`y#?#dnr2|9ET5I7;*yvJc6miEVI`B( z>|7FN;}LnlkgQB5GXR$*#0&W8A2|d9aX*pd#NX&=$t-kms_z|N7Q7%{?*zZ@=)2i@ z;{}Jyo%?arAFz-`rW*tBAR;O(?IOO*WA#)PRDl!Up1c(V;WU4&z*+Xj`*Eust%E-VyFS{~c}cD2yZC(H{p9&1(c6)GuuFczCKEQD6waxBsJ6 zFhroY0$+zZ`o4wszHg0N-&$Y@f2aO#n}%%Y29Bje9(`AsKG?m(eTVyWGnwtYpqIk^ zM&B3x_!$b&1qP&i0oWOsf!QRa;t^+T3gjwbHXoA<_VY<{eDf*!$^PRsIl1|s9I+<| zNfE|=c82_DFA{RXzBEbp+Ybo2i0D6r#B6(#%-JsqIc}c~kwbPoM2_Op^$@vvB!_N~ zHj662@`B*{Cu5&GPfpn{LL|DSo+lp;Y`r^7J{`1nX{rP2?35Ykok9Jj8!b9@$52!4 z zejJ6z`o12S@$~<@bfT?4O6$hbIji$)-FuLG*oof$@1bzJ-md;=N6>wBcdmBlsS4&n hkD#;L`+tzB()A!uWmsj2U;f3ughsdZ@f>+G^*`g&R-ym^ delta 571 zcma)&O=}ZT6oxsGlF8i^gw~2dPRD{X;tX?7(~qPQOgl3WJDF&ccHwSJE;g8CLM9fg zS17I&RFo|4ztDw?;>thawmX+1_ya^|ETRh+-M#Q~9-jAnc|Y@cI`igENXu3jA6VoN zM@|*KR&myKH1tk981?$1i}4V3Wb%pI+J1UtHxc8c`XCzhqhU3OJ5j$n5Z%5wT((!L zgG1}>i(-kmG*Kt|%cYcCt`KFMdt>njEm4X`qj6G^IGufVp)PwviMqcV1o-c@ZQDA^ zZZr{HiR^#iHQi)}Uk|*k9k15*-04R^JcH_Ds*1GA9V(&h>_@}h7k7eCC}OeF1fDqGFY