1 LISP LIBRARY PACKAGES MANUAL 1 LISP LIBRARY PACKAGES MANUAL FILE BROWSER 1 FILE UTILITIES 1 FILE BROWSER 6 The File Browser provides a convenient user interface for manipulating the files stored on a workstation or file server. It enables you to see, edit, delete, print, load, copy, move, rename, compile, and get several types of information about groups of files. You can also customize the File Browser by adding your own commands. 2 Loading the File Browser 1 To load the File Browser, type (LOAD {DEVICE}FILEBROWSER.DCOM) in your Interlisp-D executive window. Once you have loaded the File Browser, there are two ways to open a browser on a set of files. You can select the FileBrowser command from the background menu, in which case you are prompted for a file name pattern, or you can type the command FB FILEPATTERN in your executive window. You can simultaneously have as many active File Browsers as you like. 2 Specifying What Files to Browse 1 A full file name in Interlisp-D consists of a device or host (such as your local disk, a file server, or a floppy disk), a principal directory and zero or more subdirectories, a file name (possibly including an extension), and a version number. These fields are put together in the form {DEVICE} SUBDIRECTORY>FILENAME.EXTENSION;VERSION. (In this document, capital letters are used for file names for emphasis. However, you may use lowercase letters where you wish; file names are not case-sensitive in Interlisp.) A file name pattern, as specified to the File Browser, consists of a file name with one or more pieces omitted or filled with wild cards. All the files matching the pattern are listed by the File Browser. Thus, you can browse all the files in a particular directory, all the files in a subdirectory of that directory, all the files in a directory with a particular extension, and so forth. The wild card *'' can be used to stand for zero or more consecutive characters in the file name. You can use as many wild cards in a pattern as you wish. If you leave out some of the fields in a file name pattern, the missing fields are defaulted by the system. Omitted fields in the front of the pattern, i.e., the host, device, or directory fields, are filled in by consulting your connected directory. Other omitted fields are filled in with wild cards, unless they are explicitly omitted,'' i.e., the field is empty, but the preceding punctuation is still present. In more detail, some of the cases are as follows: If you leave out the name of the host/device, specifying FILENAME, the File Browser will use the name of the host/device for the directory to which you are currently connected. If you leave out both the device and directory names, specifying FILENAME, the File Browser will use the device and directory to which you are currently connected. If you do not specify a file name, the File Browser lists all the files in the specified directory (or the connected directory if you also omitted the host and directory). If you leave out the extension of a file name, the File Browser lists all the files with the specified file name and any extension. If you omit the extension but include the period that usually precedes the extension, the File Browser lists only the files with the specified name and no extension. If you omit the version number of the file name, the File Browser lists all versions of the matching files. If you omit the version number but include the semicolon that usually precedes the version, the File Browser lists only the highest version of the matching files. Some examples: The pattern *'' specifies all files in the connected directory. It is equivalent to *.*'' or *.*;*''. The pattern BAR'' specifies all files in directory FOO with name BAR and any extension. It is equivalent to BAR.*;*''. The pattern BAR.'' specifies all files in directory FOO with name BAR and no extension. It is equivalent to BAR.;*''. The pattern *.TEdit'' specifies all files in the connected directory with the extension TEdit.'' It is equivalent to *.TEdit;*''. The pattern *.TEdit;'' specifies only the newest version of all files in the connected directory with the extension TEdit''. The pattern A*E'' specifies all files in directory FOO whose names begin with A'' and end with E'' and have any extension. The pattern {TOAST}*MY*'' specifies all files in directory {TOAST} whose names contain the substring MY'' and any extension. 2 Opening a File Browser Window 1 After you issue the FB or FileBrowser command, the File Browser will prompt you to create a window by presenting you with a dashed rectangle with the mouse cursor and a small geometric design at the lower-right corner. Move your mouse until the window is where you want it on the screen, then hold down the left mouse button and move your mouse down and to the right, thus expanding the window diagonally, until the window is the right size. Then release the mouse button. This creates a window group on your screen in the outlined area. If you selected the FileBrowser command from the background menu, the File Browser now prompts you for a file pattern. Type a pattern, as described in the previous section. (If you issued the FB command, you have already specified the pattern.) The File Browser now enumerates the set of files matching the pattern you requested to see. While the enumeration is in progress, the Recompute command is grayed out. When the enumeration is finished, you may scroll the window, select files, and issue commands. If the File Browser can't find any files matching the pattern you specified, or you decide you specified the wrong pattern and want to try again, you can specify a new file name pattern from within the browser using the New Pattern command; see Recomputing the File Listing.'' 08pcsgT)H%"I8)H!IT)HIDpgpd@@@@0GG r$D$MF! IKjԕrZgqD$OF" HKT9`JUJ@8O+4 Fr8JRJUJ@D(K" ABTJRJU$J@D$K! IB1JRIdBIG B1#9`@0o>~~߻g]w}9t۝^oYc:Çkk{Ͳm>o^{:M':qǀ߻mwڮ6ۍ^vf~,m߻nww{ڭm~v~mmπow};lVgyzmm~;m+qA! 88 x 8@QsDD`pÌ8Db3r@ D0#) $DDI$@DI$@@DI$$I"U #DE H0Dy<@D9''>) $DEI$DA @DI$$  Q7R88 qӎpxr9r8tDI"!@ A@A ! Q%ã)Ǘ?i_&$dI"Ujf$$'>)jvþ $$$  Q7j߻vo߻$$dI"!7j߻foݻ#Aj×?_    >@8( @D@"8qa( @GD D`H<@H8<H0 H"CH>D@"Ȋ |@HD@"IDa"@HDB"~F88pA A\8A"bD̑~>BA Bd!8A"BD""`@D@AB:"8q`" GDB("D 8F"0" C>D@"" @HD@H&D"" HDBG8q8p>  #:8xMFDĈ!B@P$A> @8>&HB@P$@" `@D@ $HFD 8G8 @GDB #:8x DeA&D< @8< D@%A"D" C>D@""@""D  @HD@D"Db&DQ"" @HDB"C8ᢁ8P8pA!@Q)U@p  8)@@D@"HQHeXaGDH!"PA"d"$ H8AA `A>@"$CH>DA PA @">HDA"HA"@ "HD"Dp⥁@ "8pAI!AQK)@>8>U@( @D@ I)Ha( GD IQP H< H8<!H`H"CH>D"HAH"P@|HDH"H!"HD"D8pA!Q@@8)@"@D " 0UHpGD r)PEB H8< QH``E@CH>D" 0!H"PE@HD"AH"H@EF"HD"Dp@EB8p A$! p8QH("@D@f.$p)K,(q & 0GDB( 1$U 2(@$*qP8B !$)"D$* S>D !$QH"|@>2 HD@ 1$!H2D "HDB.$pA,Dqp8p>    @8H( "@D@"K,(aGl "@GD  2(ɐ$HT @H8<2 "DFT"CH>D@"BH"|"T"@HD@"BH2D"Ta"@HDB"22 ,DT 8p   @p8pAHH"@D@"!K,Hćq"GDB" Q 2x%&P8p#b)"D"P>D@"$H"UH"D%"PHD@">)H2D$&Q HDB"$ Q,xAP>8p$H2"! #ќA 8ǀp8HDB$@@D@ "K,DB$@6(HD" 2@A@*H8""@@G* H>D@H"DB$*@HD@H2DB$*0IDB",8*>8p   Figure 1. A File Browser window 2 Using the File Browser Window 1 The File Browser window has six major subwindows, which from top to bottom are as follows (see figure 1): The prompt window. This topmost subwindow is where the File Browser prints messages about what it is doing and receives input from you. Its contents are cleared before every command. If you want to save some screen space, you can close this subwindow using the standard right-button window menu%it will reappear the next time the File Browser needs it. The tally window. This subwindow immediately below the prompt window keeps a running tally of the total number of files listed in the window and the number of files that you have marked for deletion. In addition, if one of the attributes you are displaying is a size attribute (Pages or Length, see below), this window maintains a tally of the total number of pages in the files listed and the files marked for deletion. This window also has a title bar across the top identifying the pattern you specified. The window is blank while the files are being enumerated. The browser window. This is the principal subwindow, in which the files matching the specified pattern are listed. Each file's name appears at the left, and various attributes of the file are displayed in columns to the right. A black bar across the top of the browser window identifies the contents of each column. The files are listed in alphabetical order, with multiple versions of the same file listed in decreasing version order; i.e., the newest version appears first. The width of the column listing the file names is initially chosen to be appropriate for average-sized file names. If the files you asked to browse have particularly long names, then when the File Browser has finished listing all the files it may choose to redraw the browser window with the attribute columns moved farther to the right to accommodate the longer file names. The command menu. This menu appears vertically along the right side of the window, and contains commands that you may select to perform operations on the files in the browser, or change the appearance of the browser. Most of the commands operate on the set of currently selected files (see Selecting Files''). Some commands have subcommands, as indicated by the small triangle  @PP@ alongside them, which can be selected by holding down the left mouse button and rolling the mouse rightwards over the triangle. The info menu. An additional subwindow, the info menu, is not normally displayed. It is used to change the set of file information (attributes) displayed in the browser (see Getting Information About Files''). The scroll bar. If there are more files in the listing than fit at one time in the browser window, you can scroll the browser window to view more files. Roll the mouse cursor out the left side of the window to get the scroll bar and press the left mouse button to scroll the region up and the right mouse button to scroll it down. Clicking a mouse button when the cursor is near the bottom of the scroll bar will scroll the region by larger increments than when the cursor is at the top. You can also press the middle mouse button in the scroll bar to move the listing to the place that corresponds to that position in the scroll bar. For example, pressing the middle mouse button when the cursor is at the bottom of the scroll bar will display the end of the listing. This quick-scrolling technique is called thumbing. The gray box in the scroll region indicates where the currently displayed contents are relative to the entire contents of the browser. Similarly, if there is more attribute information than fits in the browser window, you can scroll the browser window horizontally to view the rest of the attribute information. To do this, roll the mouse out the bottom of the window to get the horizontal scroll bar. The left button scrolls to the left, the right button to the right. 2 Selecting Files 1 Most File Browser operations are performed by selecting a single file or set of files, then giving a command that specifies what you want to do with the selected files. The current selection is indicated by a small triangle in the left margin of the browser next to each selected file; see figure 2. ú}}ݻv9}wuz_gm݃9{}wn?l[m{cΓIΜqû^^U}}z_mUo߶K%[o߻]vU}mۻ߶ms߻ vq[mwo޶m}mc``` `sF 8À#Ð" p9 ` $4JI$$I$" I$ D` #RI'" <` | ` $_I$ " I  @`7R8ÑD`H 8g`0``````?` p9 `qǏxǗ D`j~ٻw~g | `j݃pw @`7jݿw D`7jٻwng8g`jǏ;Ǘ`````` `@`&$@`$"`$"`@8  $&!`H@"DaH`H@ "L@I`@ TR$@$!$`@  TR"$!J$`H@ d2">!L<`H@ D2!!H`|>8`@`G,À`H3$@`"'`@"p8  H"$`H@H6"DaHH"$@`H@H6"L@HG#`@H*TR$@$!$`@ H* TR"$!B$`H@H*@d2">!D<`H@H*0 D2!!H`|">8`` `Ύ."`Q!1"`x8  r!!`H"D@H"D"a !!`τH"DH"@ !1`O"D8R$@!$.`τH"DBR"!$ `H"DD2"!Ȁ< 0`H"DAH D2!"!`x@>8````À ` 8q|> <$@`H D "@ aH # `H D@"@ŀ @ `H Dx&@<!<$@`H D DO"!@ À`H D @!@`H D D&@"!H `>8q>8ŀ```@`@` 8q"p|>  `H D H6"@ aE2@`τH D@H6"@ŀ E(@ `H DH*x&@<!@`τH D H* DO"!I2@`H D H*@@!O0`H DH*0 D&@"!A`>8q">8ŀ<`` ``@`"qp @π<@`H"(" "0"` @<8t `τH"(B "Pŀ@ @BD`H>( &@ @<@B `τO"D @ O @H @Bd`H"|" $@ @@@BD`H"D! $@" @H ~<:t`"Dq>|@`````8 < `B(H"D"a@ B`τB(I"D@A$ `B|  2" B0BDHI `B @2!"!D BBDLI"`>|<(Č`Dttp``x``π8!`0D``P(LÀ( (`T$@ `T @Ř `d @ $&dĄ`D$@ $D`τ|>8À>τ< $D` $$DČ`Dtg```8 ` ` "D"` Figure 2. Several selected files To select one file, point to any part of the line and click the left mouse button. If other files are already selected, this unselects them; thus, a file selected with the left mouse button is always the only selection. To add a single file to the current selection, click the middle mouse button at any place in the line. The file is selected without unselecting any other file. To remove a single file from the current selection, hold down the control key and click the middle mouse button at any place in the line. The file is unselected without affecting any other file. To extend the selection to include a group of contiguous files, that is, to select all the files between a file and the nearest already selected file, click the right mouse button on any part of the line. You can only extend the selection from the first selected file upward, or the last selected file downward. In addition, files marked for deletion are not normally selected when you extend. If you want to include all files, both deleted and undeleted, hold down the control key while extending the selection. Some lines in a File Browser display are directory-only'' lines. These lines are slightly indented and name the directory and subdirectory to which the files listed below that line belong. You cannot select in these lines. 2 Copy-Selecting Files 1 You can copy-select file names from a File Browser into other windows, such as executive and TEdit windows, by holding down the Copy (or shift) key while selecting a name in the window. The full name of the file is inserted as if you had typed it where the input caret is flashing. You can also copy-select in a directory-only line, in which case the full directory name is inserted in your type-in. 2 Issuing File Browser Commands 1 Some File Browser commands require input from you. For example, the Copy command requires that you supply a destination for the file. When a command requires input, the File Browser prints a prompt message in its prompt window. This is usually followed by a default answer.'' If you like the default answer, you can just press the carriage return to finish the input. If you want to specify a different answer, simply start typing it; the default answer is erased and your answer replaces it. Alternatively, you can modify the default answer by backspacing over individual letters, or typing control-W to back up over complete words. Typing control-Q erases the entire answer. In any case, when you are finished, press the carriage return. If you change your mind and want to abort the command, supply an empty input; i.e., if there is an answer in progress, backspace over it or type control-Q to erase it, then press the carriage return. The File Browser prints aborted'' and aborts the command. In most situations, the control-E interrupt can also be used to abort your answer. While you are typing an answer, you can copy-select file names out of the browser (or any other browser), as described above. This can be useful, for example, if you wish to rename a file to a similar name in the same directory, or move a file into a subdirectory listed in the browser. 2 Seeing Files 1 When you browse a directory you sometimes want to see a file before printing or performing some other operation on it. To do this, select the file, then click on the See command from the command menu. The File Browser will prompt you to open a window by presenting you with a dashed rectangle and printing a message in your Interlisp-D prompt window. The window will be blank until the File Browser starts printing the contents of the file in it. There are actually three different See commands, as shown in the roll-out submenu for the See command (see figure 3). The two fast'' See commands are provided to let you quickly see the contents of a file, but not do anything fancy, such as scroll around at random in the file. The slower scrollable'' command does let you scroll, and if the file contains formatting information of a kind that the File Browser knows about, you will see the file formatted. However, this command does much more work, and may take a bit longer to show you even the first line of the file. The different versions of See are described further below. >qp82Dr"|| "@} "D1]q"8ݿݿ}cσ}w   , ?5  ! @   ' ! @ $  ' !  D1c01ٌ0 alm   @B"  D!@1a1ccml >|qB<>p 8 @?a1Ϙo~mo 0 0  o| 610l 6 60 0l 6 À 7a0 6 $@ 1#0 | @ 0330 6<À 60c 0Č 6 ! @ 603 0nj 6 ! @ 610 6A$@ 307|@À    @ @ȎqO>8p#"@>8p#>8"|Ç @ (@H D!$@"@ B$ D!$H DB"@!Xqa<8  (@H D!$A"@ B$ D!$H DB"@!"d dHD (@<@!"@ B$<@!<Dx Dy'D D@ \!"@ C \! $@ D$D |@ D!dB"@ B D!d@ B@!"DdHD  D@ D!dD"@ B D!dB $B@!Dy 8 DpA>8p#| ϑ>8p# 8#|Ç @ @ @ @ @ @ @ qO>8p#>|!ȎDO" (@H D!$@ @Q"DB$B2 (@H D!$A @Q"DB$B2 (@<@!8p#>@DB"   "D"8>8DqǏ"| "(DB2D $"dH2@ "(DB2D $"dH2@@ ((*0QQLj"TaH*x@ D H(B*P@Q "TH*@ @ |Ȅ("B&D2 QD"LH&@@ DHB&D2 !$"LH&@@ DG"88!'DqǏ"@   ` @ | p>8P"D CÇ<DÏ  @D@ DPH"D`B!"!$dH,XqÈ4q (@D@ LPH"(B!"A$dH2dDHL!xQG$dH( B!"A$LH 2@@DIL!DR$@"DHD B!"!$L!H ,@p@C4xa>8$@p8DCÇ<D!È @ `  G<8A>x AÈ>D@ H"D@! DR$M d!R H"D ! Dp$M d F<0 DÈ>D    >|È<8D"8p#  !$M"@DB2DdB   $M"@DB2DdA < J<@(*0   BJ(@H(B*   B$J$@Ȅ("B&DA   B$J"@HB&DA > AÈ"8@G"8p#   8pϙx@8O D6l͛@ "DٲB* D33l"DٲB D 33olx DSB* "D 1#l{v< DRB >D1l<v "DR "D0l=v"DR "8pφ0o&@8B  @   !<8A>xÈ !H"D! DL AH"D! DL A"0 DÈ    !#qO>8p#"D !$@(@H D!$H"H6lJ A$@(@H D!$H"È6l A(@<@!H*TPJ AD@ \!*TP Ad@|@ D!dH"*T0 Ad@D@ D!dH"*T0 !#DpA>8p#"D    !#qO>8p#8p#o@ c1aÀ `=aÀ *`=a@ `mߞa `ma `ma `͜ c1͜ > À @!"È@ "@Q"($M@ "@Q"(r$M@  @Q(RJ@  @BDRJ@ "@"|r$J@ "@D$J@ |DÈ| À @ 8?l738'|#D >DÈ8@ "D1l6 17HD$"C$@"D  dHDB@" "D1ff 067HD$"C$@"T  dHDB@"  D0 fg36DB"T @ H"D! ( @ H"D! ( H |!( H.D!D ˆ"D!`| ˆ"D!`D D! D @ @ @ À À ''A 'a 'pQE#B'I"($@CP'I>'"'E $'C"($@'pADa# '''' Figure 4. A Fast See Formatted display window awaiting the next command If you click on More, the See command displays another windowful of the file. If you click on Next File, the See command closes this file and goes on to display the next file in the current selection. If you click on Abort, the entire See command is aborted. You can also abort the See command by closing the display window. The next time you give a Fast See command, the same window will be reused. The only difference between the Fast See Formatted and the Fast See Unformatted commands is the manner in which the characters of the file are processed as they are displayed. The Formatted version interprets certain control characters found in Interlisp-D source files to be font change commands, and interprets certain multibyte sequences as representing characters in the Xerox extended character set. It also squeezes out blank lines and shrinks the indentation of indented lines in order to better fit the text in a window that is generally much narrower than the standard file width. The Formatted version is thus most appropriate for viewing Interlisp-D source files and files containing plain text. The Unformatted version of the See command does no special processing on the characters whatsoever. It simply displays each eight-bit byte as a single character, uninterpreted. This means that bytes that do not represent normal printing characters may be displayed as black boxes, in the form ^x'' or #x,'' or as a flashing of the window (for the byte that represents the ASCII bell'' character). The Unformatted version is thus most appropriate for viewing binary'' files that also contain text portions that might be worth seeing; e.g., Interlisp-D compiled files (those with extension DCOM) or Interpress masters (extension IP or INTERPRESS). The See Scrollable & Pretty command views a file in a different way. This command brings up a read-only TEdit window viewing the file. You can scroll and copy-select the file's contents at will, as with any TEdit window. If the file is an Interlisp-D source file, its contents are first formatted into a TEdit document, so that all the font information is retained. This formatting, however, can take a long time for a large file. For other kinds of files, the See Scrollable & Pretty command is exactly like viewing the file in a regular TEdit window, except that you can't edit it. If you want to edit a file, use the Edit command instead of the See command. You can keep the display window used by the See Scrollable & Pretty command open as long as you like. The command uses a different window for each file you select. Simply close the window with the standard right-button window menu when you are finished with it. 2 Editing Files 1 To start up a TEdit editor on a selected text file, click on Edit with the left mouse button. If you have recently closed a TEdit window, then TEdit will probably reuse that window; otherwise, you will be prompted to create an editor window. TEdit only remembers the most recently abandoned window, however, so if you issue the Edit command when you have several files selected, you will always be prompted to create windows for all but the first file. The use of the text editor is described in the TEdit documentation in this manual. When you are finished with the Edit window, you can simply close the window. 2 Printing Files 1 You can print text files, TEdit files, Interpress or Press files, and Lisp files from the File Browser. Select the appropriate file or files, then click on the Hardcopy command. The Hardcopy command will determine what type of file you are printing and call the appropriate function for printing that file. Then the files will be printed one at a time on your default printer. The Interlisp-D prompt window will display status messages telling you when files are being printed and when they are done (if your printer is one that provides this status service). For files stored on non-random-access servers, the File Browser is currently unable to determine that a file is in TEdit format unless the file has the extension .TEdit. Therefore you should use the TEdit Hardcopy command instead. 2 Deleting and Undeleting Files 1 Removing a file from the file system using the File Browser is a two-step process. First, you mark the file or files for deletion. Then you issue the Expunge command. Any time between the deletion and the expunge you can change your mind and undelete any of the files. To mark a file or files for deletion, select them, then choose the Delete command. The File Browser draws a line through the deleted files (see figure 5). It also adjusts the figures in the tally window to show how many files are marked deleted and how many pages they contain. It is thus easy to see how much space you will regain when you issue the Expunge command. q{߻nGy}v:Z:Çsw{}ؿq~ضΓIΜq߻}v}}ͶϪz۶0߶K%[o߻nw[۶{}{۷w߶msqXǻr;v8޶m}mc``` 8<`sQEA0"19  p9 ` $ (FD$I"I$I I$ D` #HEA#x"y I  @`7R8N9<99qD` 8g` ``````` p9 `ˏ㇏/ D`jvnv | `j? @`7jݻ~ D`7jݳvv8g`jˏw/`````` `@`D"8pA|&$@`DB2D0 "( @$"`DB2DB P#"(B! @$"`(*0@$HHB! x$&!`H(B*'"HA D`Ȅ("B&D$"|@ `HB&D $H"B!D`G"8 C|pÇ8`@```@`D"8È 8G,À`DB2D$M0`"(@DH3$@`ςDB2D$M(Pc"(AD"'`ˆ(*0JLHA H"$`τH(B*J"H@ H"$@`Ȅ("B&D$JH"| G#`HB&D!$JH"A@`G"8!È>|p#A|`````p|8` 0 "@ DΎ."`DqaG,8BP#"@! Q!1"`HD$2DB Lx 8r!!`(A"0@y#ȟ"D  !!`H(A"$H"  !1`H$"D "$H"D!D.`qA"8 `|pȀ88 `@ 0````>8p#80||` D!$@DP "@  @` D!$@(DP$K"@! @À `<@!$Lx!x$@`B \!$H"DD# ` D!d@ $H" `B D!dB @$Ȁ"D!D$@`G>8p#>|H88À`````>8p#>Dp80|` D!$@ lDP "@ 0@` D!$@ lDP$K"@!P@` `B \! T$H"D 2@` D!d@ T $H" @ `B D!d@ TA@$Ȁ"D!@`G>8p#>Dp@|H8|2@`0````>8p#>DpÇ80|8` D!$@ l$H0DP "@ D` D!$@ l$HPDP$K"@! L@`@`B \! T$$H"D T@<8t ` D!d@ T$H $H" d@BD`B D!d@ TB$H@$Ȁ"D!D@B `G>8p#>DpCÇ||H88@Bd`@BD`~<:t```>8p#880|8` D!$@"DDP "@ D` D!$@"DB DP$K"@!`<@! D@$Lx!8< `B \! D$H"DB` D!d@"D $H" 8p#8C|H88BDHI> `@BDHI `BBDLI"`<8p#< 8p|A8` D!$@"`D "@ D` D!$@"D$K"@B! `<@!" p$LxA8`B \!<  $H"DB ` D!d@  $H"B `B D!dB 0 @$Ȁ"DB!DDtp`G>8p# |pH88(ĄČ`` `(Č`Dttp`>8p#<|p8p|A8` D!$@"@D "@ Dx` D!$@"@D$K"@B! L``B \!(@  $H"DB T` D!d@$@ $H"B d`B D!dB"@@$Ȁ"DB!D`G>8p#"|p|pH88Ř ` $&dĄ`$D` $D` $$DČ`>8p#>xq8p|ADtg` D!$@ D @D "@ 0` D!$@ D @ D$K"@B! P`<@!8p#>xp@|pH8| 8p8A` D "D 0 D#"DBP $HCH '"B   $" B H0 @$H"@B!O|pÇ|| Figure 5. Some files marked for deletion To undelete a file or files (i.e., to remove the deletion mark), select them, then choose the Undelete command. The lines through the files are removed, and the tally of deleted files is updated. The Undelete command has a single subcommand, Undelete All Files (see figure 6), which undeletes all the files in the browser, independently of whether they are selected. This is useful if you completely change your mind about deleting any files. ?!4ad[emm>mmح>> ! F #p $HV ' $F!$H>#p~hqa^gnn۷woo`7_oooonn۷w~mqqyG Ǐ;svݻw{{?w탏{{~߻{svݻw<{~ǏB<\DBbDBB(BB(BBb<<\@@` Figure 6. The Undelete All Files subcommand The Delete command has a useful subcommand, Delete Old Versions (see figure 7). When you have been editing a file in the text editor and performing repeated Put commands, or you as a programmer have done many MAKEFILEs of the same file, multiple versions of the file accumulate, each more recent version denoted by a higher number. The Delete Old Versions command is used to delete excess versions of the files displayed in the browser. 1<|C?|i9ӎ3|dm|mnr98s|mo DD#đ"|9m[r ||!| @ @!|D D#"|8g8p|||p|ݷn_n߷ݷnn/;Gݷnmݕ{;wnm;{{߷m߿{{ݷnݽ{{w/;{A@A@A.G<_A1#"H<A!!>OL<A!! H<A!#"H <>!G  < < < < < < < < Figure 7. Delete subcommands To use this command, click the mouse down on the Delete command and roll the cursor out to the right, choosing the Delete Old Versions command. Unlike the Delete command (or Delete Selected Files, the equivalent subcommand), the Delete Old Versions command operates on all the files in the browser. The File Browser prompts you for the number of versions of each file that you wish to retain. It offers the default of one version. You can accept the default or you can type a different number of your choosing, followed by a carriage return. The File Browser then marks for deletion all but the most recent N versions of all the files in the browser, where N is the number you specified. Before issuing the Expunge command, you can, if you wish, scroll through the browser undeleting any particular files for which you wish to retain more versions than you specified. The Delete Old Versions command is sometimes useful even when you are not planning to actually expunge the files. This is because of the way extending the selection avoids deleted files (see Selecting Files''). For example, if you wanted to copy only the most recent version of all the files in the browser to another location, you could do the following: Use the Delete Old Versions command, retaining just one version. This marks deleted all files but the newest version of each. Now go to the start of the browser and select the first file, then scroll to the end of the browser and click the right mouse button to extend the selection to the end of the browser. You have selected exactly the newest version of each file. You can now use the Copy command to copy those files. Finally, use the Undelete All Files command to undelete all the old versions. 2 Expunging Files 1 If you are sure you want to delete a file or files permanently, choose the Expunge command. The Expunge command is grayed while the File Browser expunges the files. As each file is removed from the system, it is removed as well from the browser display, and the tally of total number of files and number of deleted files is updated, so you can see the progress of the command. If for some reason a file could not be expunged, the File Browser prints a message saying so in its prompt window, but continues to expunge the other files. The main reasons that prevent a file from being expunged are its being opened, either by you or some other user, or your not having the access rights required to delete it (if it is on a file server). Note that the Expunge command is not affected by the current selection; it operates only on files marked for deletion, whether selected or not. 2 Copying Files 1 The Copy command is used to copy an entire file or set of files to another file system location, for example, from your disk to a file server. Select the file(s) you wish to copy, then click on the Copy command. The File Browser prompts you to supply a destination. If you selected just one file, the File Browser prints the old name and offers as a default the same file name, but on the connected directory (see figure 8). You can accept the default or supply your own destination file name. If you supply just a directory specification, e.g., {SERVER}, the file is copied to that directory under its current name. If you supply a complete name, the file is copied to that exact name.  `F c9c%yF()F`!RD*P)B@9 q`)F&s!H$%*P(BA80 1*!J!$(%^+dqARBH  'J!8HP$%X~H@@\Bp  J0! PDFP)BHAPB@c8@ ` ̉,!9F^c&yCFLPB0 !  gzw8NF dxNy")A$EBR 4")@$DB$Bg!.pP'8(Pxq!""!*@$a@R!"%)A$aBR "j dzw% dayd'   ?;}߿p۷o9]3w۷wWvο!:9lm{Ŷ׶?4<;U덵XmpWݵYad[eUm[۷ݻmm?mwmp\w{mm߿ح??> ||8 <! Gg1 D`pÌ8"19 "q #pI `DI$@"I$I " $H $HW9  E H0"y#p@`  Gw #pN?w\xݧ~f""'@BbDʨSS9"""bbb2""'8pÀ<<\D" $@ (ȘDB $"X (@Qq@G"d@HA"""""""""'@" O"DHD"@@@"D|D!@&DB8!DpAqp82Dr"| "@8q80  "DD""D$00P$0`Oq"8D""D$PPP$X PAO@R"DG "d BO@SJDBO>D  ODR"D"$@ D  DRH"D$@"d  @O8qH8q||X|@O @ @ , ?5  ! @8q8<8qp ! @D""D$"D$0`O !D""D$"D$X PAO @R"D"@PG "d BO@SJDB"@PxO>D  ODR"D"$"DP@ D  DRH"D$"DQ@"d  @O8qH8q<8qpX|@O@>@AG@8<"DW8ppÀ8p>|D0$@@DO @GDP$D@ AOA"D@ E@"D@8BO>8@ O"(@OD@@"(D0@"@D@O8ώ|p@8p@O  $@G@/8xp pÀ8p~#$WDD`$@@DO@!$DDa$D@ AO@!$G@ DpE@"D@8BO@#$@DO"(@ O# Figure 8. A File Browser showing input for copying a single file If you selected several files, the File Browser notes how many files you wish to copy and offers as a default destination the connected directory. You can accept the default or supply a different directory. All the files are copied to that directory under the names they currently have. Note that you must supply a directory specification, e.g., {SERVER}, rather than a complete file name, since you can't copy multiple files to the same name. If you mistakenly type a file name, rather than a directory specification, the File Browser will complain and abort the command.  `0#D 91 pH  @ D$ )JR IIR9 aqrB D BR IIR !%"@)DJD1B\Nq\P !8"@ D BD DD(BT IS!@! *@)D$A@ D$ (JR IJ2" c8@x!TăF@91 ||8 <! Gg1 D`pÌ8"19 "q #pI `DI$@"I$I " $H $HW9  E H0"y#p@`  Gw #pN?w\xݧ~f""'@BbDʨSS9"""bbb2""'8pÀ<<\D" $@ (ȘDB $"X (@Qq@G"d@HA"""""""""'@" O"DHD"@@@"D|D!@&DB8!DpAqp82Dr"| "@8q80  "DD""D$00P$0`Oq"8D""D$PPP$X PAO@R"DG "d BO@SJDBO>D  ODR"D"$@ D  DRH"D$@"d  @O8qH8q||X|@O @ @ , ?5  ! @8q8<8qp ! @D""D$"D$0`O !D""D$"D$X PAO @R"D"@PG "d BO@SJDB"@PxO>D  ODR"D"$"DP@ D  DRH"D$"DQ@"d  @O8qH8q<8qpX|@O@>@AG@8<"DW8ppÀ8p>|D0$@@DO @GDP$D@ AOA"D@ E@"D@8BO>8@ O"(@OD@@"(D0@"@D@O8ώ|p@8p@O  $@G@/8xp pÀ8p~#$WDD`$@@DO@!$DDa$D@ AO@!$G@ DpE@"D@8BO@#$@DO"(@ O#DD@"(@DD@"@D@O Figure 9. A File Browser showing the prompt for copying a group of files As each file is copied, the File Browser prints a message giving the full name of the new file. If a file with the chosen name already exists, the new file's version number will be one higher; otherwise it will be version one. The new file will have the same creation date as the original file. If the destination file happens to be one that matches the pattern of the files in the browser, the new file is inserted in the appropriate place in the browser display. However, if it matches the pattern of some other File Browser, it is not inserted in that other browser's display (in other words, File Browsers do not, in the current implementation, know about each other). 2 Moving and Renaming Files 1 The Rename command is used for changing the name of a file or group of files. If the new name of the file is on a different file system than the original file, changing its name is equivalent to moving the file, i.e., copying it to the new name and then deleting the original file. The Rename command is used in exactly the same way as the Copy command. If you rename a single file, you can supply a complete new name or just a directory; if you rename several files, you must specify a directory. As each file is renamed, the File Browser prints a message giving the file's new name and removes the file from the browser display. If the new name belongs in the same browser, it is inserted in the appropriate place. If for some reason a file could not be renamed, this is noted in the prompt window. The reasons for the failure of a renaming operation are roughly the same as for the failure of an expunge%the file is open, or you do not have the access rights needed to rename the file. 2 Loading Files 1 The File Browser's Load command can be used to load both source (interpreted) and compiled files into your workstation's virtual memory. First select the file or files you want to load, then select Load with the left mouse button. A special display window is opened to give information about the files as they are loaded (see figure 10). When the load is complete, the File Browser closes the Load window. 0_~x_}m[}Uj}ۿw~}~8 ""88Ç8D B"D""D$HDD "D!"D$HD0!"0ဈ"@$"@@"@$D "D"!"D$H D B"D""DB$H@8 #88CÇ| p 8 |A8p D` "@ DÇ,8D$K"@@!H2` $LxA8" !$H"D@ "  $H"@ H2`@ $Ȁ"DB!DÇ,|H88p  >q<p@8>p "@D@  "@HDB  0ǂ<‚"@H8<qP BB" CH>D@" P ""@@HD@  B"@IDB">qB<8ppÏDp#H"Hd@H"Pd@ p  HI"H@H"D@ÈDp# Figure 10. The Load window The Load command also has subcommands that enable you to load files in different ways. These commands are described briefly here; see the Interlisp-D Reference Manual for further details. Only the Load and Load Sysload commands are of interest to nonprogrammers. All load commands are placed on the history list. With the exception of Load Sysload, all are undoable using history list commands. gq    @p@@?Ë0 &$L !ȉ A&H  A$$H #    "      8 DdHLH $HE d$HE $DdHLB $: #$ ! ! #    p`@> $ADA #$ÇAD@ Bp$$H(< B$!@ DD$&H@ G$$HA $#'ç@>?'   t`@ @!D @@$t @@' @@$ @@$ @!HD~O`nx`@f@!Bn@@$pb@@$@@$@@$@!HB ~O @ @  bG HX O HHG Figure 11. Various ways to load a file Load (same as the main Load command) loads the file(s) with LDFLG = NIL. If any functions or variables in the file redefine ones that are already in memory, messages such as FOO redefined'' are printed. The command is undoable. This command is used for loading source files that you as a programmer plan to make modifications to, or for loading any file that you have doubts about, in which case you might want to be able to undo the load. Load Prop loads the file(s) with LDFLG = PROP. Functions are loaded onto property lists, rather than redefining the functions already in memory. This command is used for loading Interlisp-D source files for which the compiled version already exists in memory, but which you plan to edit. Load Sysload loads the file(s) with LDFLG= SYSLOAD. Function and variable redefinitions occur quietly. The file package is not informed of this file. This is the fastest loading command and consumes the fewest resources, but it is not undoable. It is the best way to load compiled (extension DCOM) files that you are certain you want to load into your environment and are not planning to edit. Loadfrom calls the file package's function LOADFROM. This loads variables and other expressions but not functions, and does so in a way that informs the file package, so that the editor knows where to find the functions. Loadcomp calls the file package's function LOADCOMP. This loads compile-time expressions from the file(s). 2 Compiling Files 1 The Compile command is used to compile a selected Lisp source file or files. The files do not have to be loaded. The Compile command uses BCOMPL, the block compiler, to compile the files, unless you select TCOMPL from the Compile submenu. This command is placed on the history list, so that it is undoable. A special executive window is opened for each file to display information about the code being compiled. When the compilation is finished, the window is closed. Each compiled file is saved on your connected directory with the original file name and the extension DCOM. Note that this command compiles a file or files found on a storage device, not the functions defined in the Lisp image. If you have made changes to any of the functions on a loaded file, you must perform a MAKEFILE to write an updated version before compiling it. For more information on making files and compiling, see the Interlisp-D Reference Manual. 2 Recomputing the File Listing 1 The File Browser's display shows those files that existed and matched the specified pattern at the time you created the browser. Although the File Browser is aware of files copied, renamed, or expunged within the browser, it is completely unaware of any changes to the file system that happen outside the browser. If you have reason to believe the file system has changed, and you want the browser to reflect the latest state of the file system, use the Recompute command. For example, if you open a File Browser on your directory, then save several versions of a TEdit file on that directory, the file listing will not display the new versions. The Recompute command operates exactly as when you started up the File Browser initially: it clears the display and tally windows, then enumerates the files matching the pattern. The Recompute command in the menu is grayed until the enumeration is finished. During this time you cannot scroll or perform any other operations on the browser. However, you can close the window if you want to abort the command and throw away the browser. The Recompute command also has a menu of subcommands that allow you to list different files or different information for the same set of files (see figure 12). To obtain this submenu, hold the left mouse button down on Recompute and roll the mouse cursor out to the right. @@@ bG HX O HHG??  .!. ? 1!1#"#>D !!!!>$!D !!!! $Řp!8 1#!#"#&d!"DD'?.! D>D|' ! $D 2D@' $$D "DD'#Dp 38'}}Ǐކ=`}vfڠA@~`a@}~QDB\}vI"DB$DMb}Ǐ;I>*GBE *$DBC"$DHBA3B    @@ @@ GKx HLH OHH H HH Ȅ@HH G@HHx   ? Figure 12. Recompute subcommands Same Pattern is the same as the main Recompute command, i.e., it enumerates the files matching the same pattern as before. New Pattern lets you change the pattern, i.e., browse a new set of files. The File Browser prompts you to supply a new file name pattern and offers the old pattern as an initial default (see figure 13). You can either type an entirely new pattern, replacing the one offered, or delete the old pattern, one character at a time, by backspacing. Press the carriage return when you have finished specifying the pattern. The File Browser then enumerates the files matching this pattern, just as with the Recompute command. You can abort the pattern specification, and thus the whole command, by erasing the whole pattern (by backspacing or using control-Q) and then pressing the carriage return. ```! @9(Q D `!3`P %([!l JH `2 39g8q%(_"$}# BD*`J A JR)BR$II9BU4$)VD$3p`rA J.2$IH!"BU"$W'  * `BA J( P$II!"BQ!)F$J" `1@A: wq'FI!"y E#!2p`Hp`0```````````````````````ú}}ݻv9}wuz_gm݃9{}wn?l[m{cΓIΜqû^^U}}z_mUo߶K%[o߻]vU}mۻ߶ms߻ vq[mwo޶m}mc``` `sF 8À#Ð" p9 ` $4JI$$I$" I$ D` #RI'" <` | ` $_I$ " I  @`7R8ÑD`H 8g`0``````?` p9 `qǏxǗ D`j~ٻw~g | `j݃pw @`7jݿw D`7jٻwng8g`jǏ;Ǘ`````` `@`&$@`$"`$"`<8q8>p$&!`"DD `"D(Dŀ (`"@PD&@< `E"@P<#O" @`E"DPπ@@̀`B"DQD&@"`<8qώ>8ŀ<`@`G,À`H3$@`"'`<8q|> H"$`"D@ a@ H"$@`"D@ŀ $G#`"@Px&@<!A(`E"@PD#O"!B(`E"DPπ@!B0`B"DQD&@"!D `<8qώ8ŀ```Ύ."`Q!1"`"D>  r!!`"D@F"0 aH !!`"(B@JPŀ H !1` "@P&@<!$.`E"BQ"!$ `E"(BR$!< 0`B"D B"R$"!`D C|`@```À `"DÈ8> $@`"D$MD"0 a@ # `"($M(DPŀ A ` "JP&@<!$@`E"JQ"!À`E"($J R$!`B"D!$J@"R$"! `D!È>||<```@`@`DϞ8p> ` `H"H H"D 0 `F 2@`H"P "DB P  J@ ` p"0@@ <! @` H" "! 2@`H"HB"D !0`H"D$"D `"  `D'ϑ8 C|᠀ τ`@```@`DϞ8Èp> ` @`H"H H"D$M"0 `F@<8t `H"P "D$M"P  J@BD` p"0J <! $@B ` H"J "! $@Bd`H"HB"D$J !<@BD`H"D$"D!$J `" ~<:t`D'ϑ8!È>|᠀ τ`````<@8p < `H""D"a B`H"!@"@%" `H$@D$@!BDHI `H"`@ Dd@ ! BBDLI"`"!>8@><  `H"($H"@"@ a`H"($H"@"@ŀ  `"(H x` x&@< $Dtp`8ŀτ(Č`Dttp``x``<È|pÇ|>  """""""""`H"($H"@$H0"@ aDDDDDDDDP`H"($H"@$HP"@ŀ  `"(H x`$x&@< $`8ŀτ5U`+2&&f殪`LDtgP```@8  """""""""`H@"DaH Figure 13. The prompt for a new file name pattern New Info lets you change which types of information you want displayed for each file. It is described in the next section. 2 Getting Information About Files 1 The File Browser displays some file attributes, or information about the file, alongside each file in the browser display. Ordinarily, the attributes displayed are the size of the file in pages, its creation date, and its author. You can change which attributes are displayed for all new File Browsers by changing FB.DEFAULT.INFO (see Customizing the File Browser''). You can change the attributes displayed in a particular browser window by using the New Info command. To use the New Info command, select it from the roll-out submenu of the Recompute command. The File Browser opens up an additional subwindow, the Info Options window, below the display window. This subwindow contains a menu of attributes, with the current defaults shaded (see figure 14). Clicking on a shaded item unshades it; clicking on an unshaded item shades it. When you have selected all the attributes you wish to see displayed, issue either the Recompute or the New Pattern command. The files will be listed with the new information you requested. The Info Options window stays open%you can close it at any time. ```@ @`D `0g3@2,4H39.1g0`p`HJDJ2+)H% %$JH$HH`pJDJ+H! 9%$qt8H$FH$`@JTJ+ H% IJ%%@@ H$AHT$`0a2$1L*8  483l0`Np#`@@`@``@@@`@@`qHcK`JRIPYI`KH`%YI`JIPYIP`IFHc^8```````````````ú}}ݻv9}wuz_gm݃9{}wn?l[m{cΓIΜqû^^U}}z_mUo߶K%[o߻]vU}mۻ߶ms߻ vq[mwo޶m}mc``` `sF 8À#Ð" p9 ` $4JI$$I$" I$ D` #RI'" <` | ` $_I$ " I  @`7R8ÑD`H 8g`0``````?` p9 `qǏxǗ D`j~ٻw~g | `j݃pw @`7jݿw D`7jٻwng8g`jǏ;Ǘ`````` `@`&$@`$"`$"`$&!`<@8p `H""D"a `H"!@"@%"`< @x&@ `(@D$O!`H$@D$@!`H"`@ Dd@ ! `"!>8@>@` G,À`@H3$@`"'`H"$`<È|p|>  H"$@`H"($H"@"@ aG#`τH"($H"@"@ŀ  `"(H x` x&@< $`τ8ŀτ``Ύ."`Q!1"`r!!`<È|pÇ|>   !!`H"($H"@$H0"@ a !1`H"($H"@$HP"@ŀ  .`"(H x`$x&@< $ `8ŀτ```À `$@`@8  # `H@"DaH`H@ "L@I$@`@ TR$@$!$À`@  TR"$!J$`H@ d2">!L<`H@ D2!!H`|>8``@`@` `@"p8  2@`H@H6"DaH@ `H@H6"L@H@`@H*TR$@$!$2@`@ H* TR"$!B$0`H@H*@d2">!D<`H@H*0 D2!!H`|">8`` `@`@`x8  @<8t `H"D@H"D"a@BD`H"DH"@@B `O"D8R$@!$@Bd`H"DBR"!$@BD`H"DD2"!Ȁ<~<:t`H"DAH D2!"!`x@>8````< ` 8q|> <B`H D "@ aH `H D DO"!@ BDHI `H D @!@BBDLI"`H D D&@"!H <8q>8ŀ````` 8q"p|> `H D H6"@ aE`H D@H6"@ŀ E(Dtp`H DH*x&@<!(ĄČ`H D H* DO"!I`H D H*@@!O`H DH*0 D&@"!A(Č`>8q">8ŀ<Dttp`` x```"qp @π<`H"(" "0"` `H"(B "Pŀ@ `H>( &@ @<Ř `O"D @ O @H $&dĄ`H"|" $@ @@$D`H"D! $@" @H $D`"Dq>|@ $$DČ`Dtg````8 1s~m~m?~m9s?@@@DDGDDDDDD?@@@ @ï\H>83W"\8@&$dbD$Hȑ"bD@$$BE|DDGODDDB|@$$BE @HHB@@$$dBB DYّbD@#B >8G\8@ DDDDLDDDDD@@ 0@@@@DDDDDDDDD@@DDDDDDDDDD@@H@@1@Q@9K_8p/\RH|9D$BB@@1uRH@5SSQ@$"D!HD$dBB@@DG\~gND@!Fg8tDDLgF|DDD@@@@ Figure 14. A File Browser showing the Info Options subwindow The Info items have the following meanings: Created. The date and time that the content of the file was created. This date changes whenever the file is modified, but does not change when a file is copied or renamed. Written. The date and time the file was last written to the file system. This date is never older than the Created date, but it can be newer if the file is copied, unmodified, from one file system to another. Read. The date and time the file was last read. This attribute is usually blank if the file has never been read. Author. The log-in name of the person who wrote the file, or last modified it. Length. The length of the file in (usually eight-bit) bytes. Pages. The number of 512-byte pages in the file. ByteSize. The size (in bits) of the bytes in the file. In Interlisp-D this is always eight, but some older computers and file servers allow other sizes. Type. A value indicating what kind of data the file contains. The usual values of this attribute are TEXT, meaning the file contains just characters, or BINARY, meaning the file contains arbitrary data. Some servers have additional types, such as INTERPRESS for files in Interpress format. 2 Quitting the File Browser 1 To quit a File Browser, simply close the browser window. If any files have been deleted but not expunged, a small menu will pop up listing two options: Expunge Deleted Files and Don't Expunge (see figure 15). If you choose the Expunge Deleted Files command, the files will be expunged before the window closes. If you choose the Don't Expunge command, your deletions are ignored. If you click outside the menu, no action is taken and the Close command is aborted. w?1Ssov߶movߪVasvݶo?ݶ)[qc8!@@@K hCC$L"DD&@ DHB$H>G"@ GB$H D"@ D$ȓ"DD&@ DHHhC@ C@,K,4pú}}2@"2Lݻv9}wuz_gm"@"D݃9{}wn?l[m{c"@"Dû^^U}}z_mUo"H""L߻]vU}mۻ"0K "4p߻ vq[mwo8``` `sF 8À#Ð8(a9 ` $4JI$$I$I$ D` #RI''G$ | ` $_I$ (I$@ @`7R8ÑσsD`H$8g`0``````?` p9 `qǏxǗ D`j~ٻw~g | `j݃pw @`7jݿw D`7jٻwng8g`jǏ;Ǘ`````` `@`&$@`$"`$"`@8  $&!`H@"DaH`H@ "L@I`@ TR$@$!$`@  TR"$!J$`H@ d2">!L<`H@ D2!!H`|>8`@`G,À`H3$@`"'`@"p8  H"$`H@H6"DaHH"$@`H@H6"L@HG#`@H*TR$@$!$`@ H* TR"$!B$`H@H*@d2">!D<`H@H*0 D2!!H`|">8`` `Ύ."`Q!1"`x8  r!!`H"D@H"D"a !!`τH"DH"@ !1`.`τH"DBR"!$ `H"DD2"!Ȁ< 0`H"DAH D2!"!`x@>8````À ` 8q|> <$@`H D "@ aH # `H D@"@ŀ @ `H Dx&@<!<$@`H D DO"!@ À`H D @!@`H D D&@"!H `>8q>8ŀ```@`@` 8q"p|>  `H D H6"@ aE2@`H D@H6"@ŀ E(@ `H DH*x&@<!@`H D H* DO"!I2@`H D H*@@!O0`H DH*0 D&@"!A`>8q">8ŀ<`` ``@`"qp @π<@`H"(" "0"` @<8t `H"(B "Pŀ@ @BD`H>( &@ @<@B `O"D @ O @H @Bd`H"|" $@ @@@BD`H"D! $@" @H ~<:t`"Dq>|@`````8 < `B(H"D"a@ B`B(I"D@A$ `B|  2" B0BDHI `B @2!"!D BBDLI"`>|<(Č`Dttp``x``π8!`0D``P(LÀ( (`T$@ `T @Ř `d @ $&dĄ`D$@ $D`τ|>8À>τ< $D` $$DČ`Dtg```8 ` ` "D"` Figure 15. The menu of Expunge options If you are finished with the File Browser only temporarily and want to put it aside to work on later, you can shrink the browser. The browser shrinks to an icon displaying the pattern of files inside the browser (see figure 16). If any files are marked for deletion, you will be prompted with the same menu of Expunge options as when you close a browser. SF``````````?```````````````````0`G@`DH @`DO @` T0`D T@`D>q$@`@@`0``  `Q1f1@`I2I$ ` 9%S<`I%R `Du$@` ```8`DR`0G`*B`DB`8 ` ```````````` Figure 16. The File Browser icon 2 Troubleshooting Problems With the File Browser 1 When the File Browser returns the message No files in group FILENAMEPATTERN'' when you know those files exist, the file server is probably down or rejecting connections. If this is so, your only option is to wait until the server is functioning again, and then give the Recompute command. When you try to expunge a file and the File Browser displays the message ``Can't expunge FILENAME,'' the file is probably still open. You can get a list of open files by typing (OPENP) at the prompt in your executive window, and close an open file by typing (CLOSEF FILENAME). You can close all open files by typing (CLOSEALL). 2 Customizing the File Browser and Using the Programmer Interface 1 File Browsers are created by one of the following two functions: (FILEBROWSER FILESPEC DESIREDPROPS REGION) [Function] Creates a File Browser on files matching the pattern FILESPEC and displaying the attributes DESIREDPROPS for each file. If DESIREDPROPS is missing or NIL, it defaults to the value of FB.DEFAULT.INFO (below). If REGION is specified, it is a screen region in which to open the browser; otherwise, the user is prompted for a region. This function returns the main window created. (FB FILESPEC ATTR1 . . . ATTRN) [Nlambda NoSpread Function] This is the function provided for creating File Browsers by typing commands to the executive. FB creates a File Browser on files matching the pattern FILESPEC and displaying the attributes ATTR1 through ATTRN, or the value of FB.DEFAULT.INFO if no attributes are specified. The user is prompted for a window region. For example, the executive command FB *.DCOM LENGTH CREATIONDATE browses all files on the connected directory with extension DCOM, displaying the length in bytes and creation date for each. FB always returns NIL. There are several global variables that can be altered to affect the File Browser's behavior. You can set them by typing (SETQ VARIABLENAME NEWVALUE) to your executive window, and can save their values with a VARS command in your initialization file. FB.DEFAULT.INFO [Variable] A list specifying which attributes should be displayed for each file. The elements of this list are the Lisp names for the attributes you want displayed. The choices are CREATIONDATE, WRITEDATE, READDATE, LENGTH, SIZE (corresponds to the Info item Pages) , BYTESIZE, AUTHOR, and TYPE . For example, (SETQ FB.DEFAULT.INFO '(CREATIONDATE LENGTH)) would cause all new File Browsers to display exactly the attributes creation date and length in pages for each file. FB.DEFAULT.NAME.WIDTH [Variable] The amount of space, in points, to use for displaying file names in a browser, initially 140. The name column is automatically expanded if enough names are too wide. You can set this larger if you routinely browse directories of long file names. FB.ICONFONT [Variable] The font in which the file pattern is displayed on the browser icon, initially eight-point Helvetica. The value of this variable should be a font descriptor, as returned by FONTCREATE. For example, (SETQ FB.ICONFONT (FONTCREATE 'MODERN 10 'BOLD)). FB.BROWSERFONT [Variable] The font in which the information in the main display window is printed, initially 10-point Gacha. FB.PROMPTFONT [Variable] The font in which prompt messages are printed, initially eight-point Gacha. FB.PROMPTLINES [Variable] The number of lines in the prompt window, initially three. FB.MENU.ITEMS [Variable] A list of the items that appear on the File Browser's command menu. You can add new File Browser commands by adding new elements to the end of this list. After your change, any new File Browser will have the added commands. Each element of FB.MENU.ITEMS is of the form (LABEL YOURFN EXPLANATION''), where LABEL is the name of the command, as it is to appear in the menu; YOURFN is the name of the function to be called when the command is selected, and EXPLANATION is the explanation to be printed when the mouse cursor is held over the command. While YOURFN is executing, the menu command is grayed out, and the File Browser is locked'' so that no other commands or processes can access it. You can have subcommands as well if you make the menu command be of the form (LABEL YOURFN ``EXPLANATION'' (SUBITEMS item1. . . itemN)), where each itemJ is recursively of the same form as a menu command. The File Browser calls YOURFN with four arguments: (YOURFN BROWSER KEY ITEM MENU), as follows: BROWSER is the File Browser object in control of this browser window. KEY is the mouse key pressed (left or middle). ITEM is the menu item that was selected. MENU is the command menu. YOURFN can also be a list of two elements, (FN ARG), where ARG is an arbitrary value that is passed, unevaluated, as the fifth argument to FN. This is useful for writing one function that implements several subcommands that are similar to the original command. Any additions to FB.MENU.ITEMS should be saved with the file package command APPENDVARS, so that the new items are added to the end of the menu, and your changes will not interfere with any changes to built-in File Browser commands in new File Browser releases. The following functions are useful within your command function: (FB.SELECTEDFILES BROWSER NOERRORFLG) [Function] Returns a list of file objects representing the files currently selected in BROWSER. If there are no selected files, this prints No files are selected'' in the prompt window, unless NOERRORFLG is true, in which case this function quietly returns NIL. (FB.FETCHFILENAME FILEOBJECT) [Function] Returns the full name of the file denoted by FILEOBJECT, one of the objects returned by FB.SELECTEDFILES. (FB.PROMPTWPRINT BROWSER X1. . .XN) [NoSpread function] Prints the strings X1 through XN in BROWSER's prompt window. The item T is printed as a carriage return (i.e., a command to go to a new line). (FB.PROMTFORINPUT PROMPT DEFAULT BROWSER) [Function] Prompts for user input in BROWSER's prompt window. PROMPT is the prompt string, DEFAULT is the default answer. Returns the user's input as a string, or NIL if there is no input, or it was aborted with control-E.(LIST ((PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC ) STARTINGPAGE# 132) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD LEFT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC )) (54 12 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGV) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE VERSOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 618) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC )) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD RIGHT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC )) (270 12 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGR) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE RECTOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 684) NIL))) (PAGE NIL (PAPERSIZE Letter FOLIOINFO (ARABIC)) (0 0 612 792) ((FOLIO NIL (PARALOOKS (QUAD LEFT) CHARLOOKS (SUPERSCRIPT 0 INVISIBLE OFF SELECTPOINT OFF PROTECTED OFF SIZE 10 FAMILY MODERN OVERLINE OFF STRIKEOUT OFF UNDERLINE OFF EXPANSION REGULAR SLOPE REGULAR WEIGHT MEDIUM INVERTED OFF USERINFO NIL STYLE NIL) FORMATINFO (ARABIC)) (54 12 288 36) NIL) (HEADING NIL (HEADINGTYPE FOOTINGV) (54 27 558 36) NIL) (HEADING NIL (HEADINGTYPE VERSOHEAD) (54 762 558 36) NIL) (TEXT NIL NIL (54 54 504 684) NIL)))))/T()T(NN($$(``(60(TT(*0( (xx(**(.((()2T)T( )T)TB PAGEHEADING VERSOHEADB PAGEHEADING RECTOHEADA PAGEHEADINGFOOTINGVA PAGEHEADINGFOOTINGRMODERN MODERN MODERN MODERNMODERNMODERN  HELVETICA  HRULE.GETFNMODERN  HRULE.GETFNMODERN   HRULE.GETFNMODERN  HRULE.GETFNMODERN  HRULE.GETFNMODERNK HRULE.GETFNMODERN HRULE.GETFNMODERN%8 b HRULE.GETFNMODERN  HRULE.GETFNMODERN ; 9 rA[ mQ2 HRULE.GETFNMODERN HRULE.GETFNMODERN  + BMOBJ.GETFN3 HELVETICA " HRULE.GETFNMODERN HRULE.GETFNMODERNj   ' D k BMOBJ.GETFN3   Q HRULE.GETFNMODERN HRULE.GETFNMODERN. X BMOBJ.GETFN3 HELVETICA " HRULE.GETFNMODERN HRULE.GETFNMODERN HRULE.GETFNMODERN HRULE.GETFNMODERNY  HRULE.GETFNMODERN  HRULE.GETFNMODERN~P BMOBJ.GETFN3 HELVETICA  @ BMOBJ.GETFN3 HELVETICA IHK HRULE.GETFNMODERN HRULE.GETFNMODERN HRULE.GETFNMODERN HRULE.GETFNMODERN4 HRULE.GETFNMODERN HRULE.GETFNMODERNt % BMOBJ.GETFN3 HELVETICA *r BMOBJ.GETFN3 HELVETICA -h BMOBJ.GETFN3 HELVETICA S1c HRULE.GETFNMODERN HRULE.GETFNMODERN}g HRULE.GETFNMODERN HRULE.GETFNMODERN    BMOBJ.GETFN3 HELVETICA B^  BMOBJ.GETFN3 HELVETICA J HRULE.GETFNMODERN HRULE.GETFNMODERNuT HRULE.GETFNMODERN HRULE.GETFNMODERN '  BMOBJ.GETFN3   BMOBJ.GETFN3 HELVETICA ("l HRULE.GETFNMODERN HRULE.GETFNMODERN6E HRULE.GETFNMODERN HRULE.GETFNMODERN BMOBJ.GETFN3 HELVETICA "{ ( BMOBJ.GETFN3 HELVETICA 3| HRULE.GETFNMODERN  HRULE.GETFNMODERN$ U  / BMOBJ.GETFN3 HELVETICA >,lG5*  HRULE.GETFNMODERN HRULE.GETFNMODERN%8 BMOBJ.GETFN3 HELVETICA (eT BMOBJ.GETFN3 HELVETICA " HRULE.GETFNMODERN/ HRULE.GETFNMODERN>X 7 HRULE.GETFNMODERN@ HRULE.GETFNMODERNA   5  M Dg!cL; =L Y 4 ?,%& MyA  Lf ;  - 2 e }]z