+u" SWING_DOC.BCK2^ SWING_DOC.BCKcBACKUP/EXCLUDE=*.DIR/INTERCHANGE/BLOCK=8464 [.DOCUMENTATION]*.* USER3:[ANONYMOUS]SWING_DOC.BCK/SAVE MATS (< s=V5.4 _RIGEL:: _ _RIGEL$DUA3: V5.4 " a?*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]BROADCAST_MESSAGES.RNH;2+,-./(< 4R--0123KPWO56\r7Lu89n<G(<HJ.br%Enter O or o (Old Broadcast Messages).pKBROADCAST MESSAGES are trapped by SWING and displayed in a separate window.RThis window can be recalled at any time if required. Broadcast messages are issuedEwhen new mail is received (for example). This window is automatically%displayed when there are outstanding )messages and the user is in the directoryHmanager or file manager and is also currently being prompted for input. 5*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]COMMANDS.RNH;2+,-./(< 4I--0123KPWO56\r7KLu89n<G(<HJ.pACommands are invoked by entering the single keystroke associated Iwith the command. Some of the commands use the LK201 keyboard keys found Cabove the `arrow keys' on the LK201 keyboard. Typical examples are PREV SCREEN and NEXT SCREEN.6*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]COPY_FILE.RNH;2+,-./(< 4L--0123KPWO56C\r7Lu89n<G(<HJ.br Enter C or c.pFCopy allows the selected files to be copied to a new directory, which Lmay be the current directory, in which case duplicate copies of these files are made. 1This option ensures that the new file always has Kthe higher version number in the situation where a file with the same name "and version number already exists..pDAdditionally, files are copied in reverse order to ensure that lowerGversions of the same file are copied before higher versions, and hence <these higher versions still have the higher version number. .pGIf desired the user can enter the EXPORT option by typing > instead of 2 when selecting the destination directory. Copy is thus 2being used as a way of specifying the destination =directory for EXPORT prior to actually entering export. This Jcan be very useful when copying files into a directory for which the user &must specify a user name and password.3*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]CREATE.RNH;2+,-./(< 4I(--0123KPWO56@ o\r7`Lu89n<G(<HJ.br Enter C or c.p5Create allows the user to create a new sub-directory.GThe user is prompted for the new directory name. It is not possible to (create more than eight directory levels..pIThe name of the directory must be valid. Invalid names are automatically rejected by SWING.0*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]DCL.RNH;2+,-./(< 4JX--0123KPWO56*\r7`Lu89n<G(<HJ.brEnter $.pJDCL spawns a sub-process in the user's current directory (as shown by the Hmain SWING display). All symbols are inherited from the parent process, Jhowever the DCL tables will be taken from sys$system, hence any additions ?made to the DCL tables will not be present in this sub-process..pLOGOUT when finished. @*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]DEFRAGMENTATION_DIR.RNH;2+,-./(< 4K--0123KPWO56@d\r7Mu89n<G(<HJ.brEnter %.pFDefragmentation allows the user to defragment the files in a directoryFstructure. The directories that will be (potentially) defragmented areKdisplayed with a different rendition. The user is twice prompted to confirmIthat the directories selected and their contents are to be defragmented. .pKThe contents of the the files that are processed will be made as contiguousJas possible. No header information (other than the pointers in the header)will be changed. .pKThe file fragmentation is shown in the FILE MANAGER via directory format 8.HIf pointers is greater than 1 then the file is unnecessarily fragmented,@and potentially degrading the system performance when accessed. A*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]DEFRAGMENTATION_FILE.RNH;2+,- ./(< 4L--0123KPWO56\r7`!Mu89n<G(<HJ.brEnter %.pBDefragmentation allows the user to defragment files in the currentIdirectory. The files to be fragmented must first be selected. The user isJtwice prompted to confirm that the directories selected and their contentsare to be defragmented. .pLThe contents of the the files that are processed will be made as contiguous Kas possible. No header information (other than the pointers in the header) will be changed..pKThe file fragmentation is shown in the FILE MANAGER via directory format 8.HIf pointers is greater than 1 then the file is unnecessarily fragmented,@and potentially degrading the system performance when accessed. 7*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]DELETE_DIR.RNH;2+,-./(< 4L--0123KPWO56 P\r7`N:Mu89n<G(<HJ.br Enter D or d.pHDelete allows the user to delete a directory structure. The directories Lthat will be (potentially) deleted are displayed with a different rendition.DThe user is twice prompted to confirm that the directories selected %and their contents are to be deleted..p>This command may not be entered from the top (root) directory..note:SWING will only delete files that the user could otherwisedelete via the DCL commands SET PROTECTION and DELETE. .end noteFi" SWING_DOC.BCK--8[MATS.PROG.SWING.C_SWING.DOCUMENTATION]DELETE_FILE.RNH;2IE8*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]DELETE_FILE.RNH;2+,-./(< 4I&--0123KPWO56\r7?TMu89n<G(<HJ.br Enter D or d.pIDelete allows the user to delete the selected files. The user is prompted'twice to confirm the intent to delete. .note ISWING will only delete files that the user could otherwise delete via the.DCL commands SET FILE /PROTECTION and DELETE. .end note 4*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]DESCRIP.MMS;1+,-./(< 4I--0123KPWO56ю7rMu8k9n<G(<HJ!! The system we're building!MEM = [.MANUAL]HLB = [.HELP_LIB]!9system depends_on $(HLB)swing.hlb, $(MEM)swing_manual.mem9 dir/date/siz $(HLB)swing.hlb;,$(MEM)swing_manual.mem;! ! help file!*$(HLB)swing.hlb depends_on $(HLB)swing.hlp2 @ libr/create=(blocks:80)/help $(HLB)swing.hlb- libr/repl $(HLB)swing.hlb $(HLB)swing.hlp/ @ purge $(HLB)swing.hlb/noconf/nolog/keep=1. @ delete $(HLB)swing.hlp;*/noconfirm/nolog!$$(HLB)swing.hlp depends_on swing.rno+ runoff swing.rno/output=$(HLB)swing.hlp!! manual!2$(MEM)swing_manual.mem depends_on swing_manual.rnoH runoff/intermediate=$(MEM)swing_manual.brn/nooutput swing_manual.rnoB runoff/contents/output=swing_manual.rnt $(MEM)swing_manual.brnI runoff swing_manual.rno/bold=3/right=6 /output=$(MEM)swing_manual.mem, @ purge $(MEM)*.*/noconfirm/keep=1/nolog5 @ delete $(MEM)swing_manual.brn;*/nolog/noconfirm=*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]DIRECTORY_FORMAT.RNH;2+,-./(< 4J--0123KPWO56\r7dzMu89n<G(<HJ.pEThere are ten (yes, ten!) different formats of directory information display within the file manager..pJTo select the desired format just press key 0 through key 9. The selected =format is shown on the bottom right-hand side of the display..pJAlso, the left-arrow and right-arrow keys allow the user to cycle through =the displays. (Just keep pressing left-arrow or right-arrow)..p/The display formats should be self-explanatory.7*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]DISCLAIMER.RNH;2+,../(< 4K--0123KPWO56A\r7ΒMu89n<G(<HJ.brKIf this software breaks you, your system or your system manager no-one but yourself is to blame..p2With the exception of the file defragmenter optionIyou can't do anything with this software that you couldn't do via normal DCL commands such as.b 1.br$ set file /protection=....br $ delete ....br $ rename ....br $ edit ....b 1.br and so on.:*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]DOCUMENTATION.RNH;2+,../(< 40Z--0123KPWO56@{5 \r7zMu89n<G(<HJ.br0A full User Manual and Tutorial can be found in:.pMOF__ROOT:[SWING]SWING.LIS6*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]EDIT_FILE.RNH;2+,../(< 4M@--0123KPWO56 --0123KPWO56`v"\r7`Mu89n<G(<HJ.br Enter _^E .p(This allows the user to edit a new file..p>The user may define the default editor as per the EDIT option.0*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]EDT.RNH;2+, ../(< 4I.--0123KPWO56`#\r7Nu89n<G(<HJ.pFThis is DEC's EDT, invoked via the EDT$EDIT interface. SWING will use 4SYS$LOGIN:EDTINI.EDT as a startup file if accessibleB- for further information see "VAX/VMS Utility Routines Reference Manual, section EDT"..pDSet the default editor to EDT for the most efficient startup of EDT..noteIThere is a problem with this approach - If the user is in a directory to Fwhich he doesn't have write access, the EDT editor will not start up. IA solution is to define a key as "EDIT/EDT/READ_ONLY". This problem only affects EDT. .end note4*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]EXECUTE.RNH;2+, ../(< 4H--0123KPWO56'%\r7 e+Nu89n<G(<HJ.br Enter X or x.pHExecute allows the user to execute the current file either as a command Gfile or as a executable (.EXE) file. Only files with the .EXE file typewill be executed.pe.g. $ run .pothers will be invoked.pe.g. $ @ Pf" SWING_DOC.BCK.-3[MATS.PROG.SWING.C_SWING.DOCUMENTATION]EXPORT.RNH;3J3*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]EXPORT.RNH;3+,../(< 4J--0123KPWO56Du7@qu89n<G(<HJ.brEnter >.pJExport is like copy, except that the user is able to specify a full DECENT!path for the selected files, e.g..pNODE"user password"::.pBThe percentage file transfer is displayed while the transfer is in/progress to bolster the confidence of the user.8*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]FILE_IMPORT.RNH;3+,../(< 4M--0123KPWO56e u7p@u89n<G(<HJ.brEnter <.pJImport is like copy, except that the user is able to specify a full DECENTMfile specification for the file to be copied into the current directory, e.g..pNODE"user password"::file ..p The percentage file transfer is ,displayed while the transfer is in progress..pBThe percentage file transfer is displayed while the transfer is in/progress to bolster the confidence of the user.9*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]FILE_MANAGER.RNH;2+,../(< 4N--0123KPWO56 (\r7@pNu89n<G(<HJ.brIEnter F or f, (_^F to see ONLY the directory files via the FILE__MANAGER).pIFILES allows the user to manipulate the files in the selected directory. #Only non-directory files are shown..require "select_files.rnh".pAIf the user entered _^F a subset of the FILE MANGER functionalityis invoked. OnlyGthe sub-directories are displayed. This option is included to allow the>user to obtain directory information for the sub-directories. .p.noteESWING reads the list of files in a directory by actually opening the Kdirectory file. This approach has been taken to improve the performance in Esituations where there may be many thousands of files in a directory. .end note.pLSWING allows the use of the = key (EQUALS) to specify a search criteria for Nfiles in the file manager. This key may be used in both the directory manager Eand the file manager. When = is pressed SWING prompts for the search Hspecification the response to which is a file specification (name.type) Iincluding wildcards as required. This specification becomes the basis of Hthe search by the file manager when building up lists of files. This is 2similar to the DCL command DIR _*.C (for example)..noteThis Koperation may also be performed in the directory manager as an alternative .to entering F or f to invoke the file manager. .end note.p7e.g. of responses are _*.c, _*.h, _*.exe, test._* etc...p.note(Any version number specified is ignored. .end note<*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]FILE_OWNER_DIRS.RNH;2+,../(< 4J--0123KPWO56 T1*\r7`Nu89n<G(<HJ.brEnter ~.p JThis option allows the user to change the ownership of the files containedJin the selected directories. Sub-directories are also changed. The user is able specify the new file owner.=*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]FILE_OWNER_FILES.RNH;2+, ../(< 4I--0123KPWO56d+\r7ȚNu89n<G(<HJ.brEnter ~.p IThis option allows the user to change the ownership of the selected filesFand / or directories as desired. The user is able specify the new fileowner. ;*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]FILE_PROT_DIRS.RNH;2+,"../(< 4K --0123KPWO56,\r7 Nu89n<G(<HJ.brEnter @.p KThis option allows the user to change the protection on the files containedJin the selected directories. Sub-directories are also changed. The user isGable specify the new file protection, being initially prompted with the!current default file protection. <*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]FILE_PROT_FILES.RNH;2+,$. ./(< 4J--0123KPWO56 E-\r7Nu89n<G(<HJ.brEnter @.p JThis option allows the user to change the protection on the selected filesFand / or directories as desired. The user is able specify the new file protection. :*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]GETTING_GOING.RNH;3+,'../(< 4U--0123KPWO561u7<u89n<G(<HJ.pLGetting going with SWING is a painless exercise. Follow the steps below and 0you'll soon learn how to use the major features.#.HL2 ^*^&SETTING_ UP_ LOGIN.COM\&\*.PESWING needs a directory in which it can keep data files. The default Cdirectory is sys$login, but the logical SWING$SAVE can be set to a different directory if desired. .pLIt is better to use SWING$SAVE than have your sys$login directory cluttered 9with seemingly unintelligible files with weird filenames..PJIf your default device and directory were MY__DISK:[MY__DEVICE], create a >new directory MY__DISK:[MY__DEVICE.SWSAVE] via the DCL command.p)$ create/dir MY__DISK:[MY__DEVICE.SWSAVE].p2Then put the following line in you login.com file:.p8$ define/process SWING$SAVE MY__DISK:[MY__DEVICE.SWSAVE].pIRemember to change MY__DISK and MY__DEVICE to your actual default device and directory..pJNow you've done the hard work. Just invoke login.com (@sys$login:login) orLif you logout and log back in then you'll pma*" SWING_DOC.BCK'.-:[MATS.PROG.SWING.C_SWING.DOCUMENTATION]GETTING_GOING.RNH;3Ube able to invoke SWING by typing:.p$ SW .por SWI, SWIN or SWING..HL2 ^*^&USING_ SWING\&\*.p9Start swing via the foreign command you just set up, i.e..p$ SWING .pKand SWING will start up. First of all SWING will create a key__definitions Kfile in SWING$SAVE (or sys$login if you decided not to define SWING$SAVE). 8Then SWING will search your directory structure, make a Mrecord of it in SWING$SAVE, and display your structure on the screen. You'll Fimmediately see the difference between SWING and DCL - your directory Kstructure is shown in 1990s' fashion for the first time! You are now using the DIRECTORY MANAGER..HL2 ^*^&DIRECTORY_ MANAGER\&\*.pKTry the cursor keys. You will find that you can move around your structure Kas easily as you can edit a file. Good-bye SET DEFAULT. Try typing T, B, N U(or press NEXT SCREEN), P (or press PREVIOUS SCREEN) as you wish - see how you move around the structure..pGAlthough this part of the manual will not describe all the features of HSWING, we'll run through a few of them here. Move to your top directory B(that's where we started all this). Type F. The display changes....HL2 ^*^&FILE_ MANAGER\&\*.pYou are Jnow in the FILE MANAGER - you now see all the files in your top directory..pHYou can also navigate around the FILE MANAGER with up-arrow, down-arrow,KT, B, N (or NEXT SCREEN), P (or PREVIOUS SCREEN) as you wish - see how youmove around the file list. .pYou can change the format of<the directory information on display by using the left- and Jright-arrows or typing in directly the format you desire - in the range 0 to 9. Try it and see..pHNow we'll leave the FILE MANAGER and return to the DIRECTORY MANAGER by typing Q (for quit).*.HL2 ^*^&ANOTHER_ DIRECTORY_ STRUCTURE\&\*.p-You can see more than just your own directoryJstructure - you can add directory structures for other users in your groupto the display.EThe way to do this is by typing I (or INSERT HERE) to insert another Istructure. You'll be prompted for a directory specification. For example,Atype MOF_LIB and you will see the directory structure of MOF_LIB..lOYou are also able to do the same to your application directories or other usersIdirectories who you are able to share data with. File security is always8maintained through normal UIC or identifier protections..pHYou now have two structures on display. You can move between them as youHwish. A quick inter-structure hop can be made by moving to the left-mostGcolumn and pressing the up- and down-arrow keys to move up and down the display. .pMWhen you've had enough of (say the) MOF_LIB structure, you can remove it fromLyour display. To do this, move to any directory in his structure. Press the:grey REMOVE key (also above the cursor keys) (or type k). HYou'll be prompted to check that you wish to remove this structure from Jthe display - type Y, and the structure will disappear. You'll be back in your own directories.!.HL2 ^*^&DEFINING_ AN_ EDITOR\&\*.p?You can edit files with SWING when you're in the FILE MANAGER. JBefore you do so it's best to define the editor you wish to use. It's not Jessential that you define your editor first, as SWING will prompt you for Hthe name of the editor you wish to use if you haven't defined an editor..pHType _^D (Control-D). The USER-OPTIONS window appears. A few lines down Jthere is an entry for the editor that will be invoked whenever you decide Kto edit a file. Use the down-arrow key to move to this line, and press the KSPACE BAR. You'll now be prompted for the editor you prefer. If you prefer 2EDT enter EDT, if you prefer EVE-WHIPS enter TPU. .pLNow type E to return to the DIRECTORY MANAGER. You're now ready to edit you first file with SWING..pISelect the FILE MANAGER in the directory containing the file you wish to Ledit. move the cursor so that it appears by the file you wish to edit, type ME and you'll be in the editor. Exit from the editor as you would do normally..HL2 ^*^&CUSTOMISING_ KEYS\&\*.pIYou can define any of the grey keys on the top of the keyboard (F6 - F20)Jand the numeric keypad on the right of the keyboard (PF1 - PF4, 0 - 9, the)MINUS, COMMA and ENTER keys) as you wish..p0Here we will define F11 to perform a SHOW USERS..pMType _^D (Control-D) by holding down the 'Ctrl' key (on the left hand side of;the keyboard, and while holding it down, hit the letter D).IThe USER-OPTIONS window appears. Move down the window, and you'll come to:the entry "func. key F11". Press the SPACE BAR, and enter .pSHOW USERS ! . .p(The ! is explained later in this manual.KThen type E to leave the USER-OPTIONS. Press F11, and you'll be prompted toFconfirm a SHOW USERS command. Type Y, and you'll see that a new window3appears in which your SHOW USERS command executes. ".HL2 ^*^&THE_ DIRECTORY_ STACK\&\*.pMSWING maintains a stack of directories as they are `visited'. A directory is Lsaid to be `visited' when the FILE MANAGER is invoked in that directory. It Eis possible to cycle through these directories in both the DIRECTORY LMANAGER and the FILE MANAGER using the SELECT (LK201) and FIND (LK201) keys,Dthus reducing keystrokes to move between your favourite directories..pBSELECT moves you to the directory `visited' prior to the currentlydisplayed directory,DFIND moves you to the directory you `visited' prior to the currentlydisplayed directory(i.e. undoes the last SELECT)..pKThe directory you are in goes to the top of the stack when you perform any 8operation in the FILE MANAGER other than SELECT or FIND..pPA directory disappears from the stack either when the FILE MANAGER detects that Ethere are no files in the directory or when a more recently accessed .directory pushes this directory off the stack..pIThus the stack is ordered with the most recently used directories at the top..pLPressing SELECT when at the bottom of the stack takes you to the top of the Istack, similarly pressing FIND when at the top of the stack takes you to the bottom of the stack..note4The stack is not saved between invocations of SWING. .end note#.HL2 ^*^&NOW_ READ_ THE_ MANUAL\&\*.pKYou're under way. Now read the rest of this manual, trying the commands as Bthey are described. I hope you find SWING a labour-saving utility..pLDon't forget the ? quick menus and the help file which is invoked by typing H.1*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]HELP.RNH;2+,+../(< 4Kx--0123KPWO56j0\r7Nu89n<G(<HJ.br Enter H, h.pKHelp allows the user access to this information. The full VAX help featuresare available. =*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]INSERT_STRUCTURE.RNH;2+,/../(< 4LR--0123KPWO56+2\r7@Ou89n<G(<HJ.br!Enter I, i or INSERT HERE (LK201).pLThe user can add another structure to the display. The user is prompted for Dthe device and directory specification of the structure to be added.JThere is no restriction to the number of structures that may be displayed at the same time..p*Each structure may only be displayed once.+Ry" SWING_DOC.BCK3.-9[MATS.PROG.SWING.C_SWING.DOCUMENTATION]INSTALLATION.RNH;2I(9*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]INSTALLATION.RNH;2+,3../(< 4ID--0123KPWO56`O3\r7%Ou89n<G(<HJ.brIInstallation of SWING is simple. Set the protection on the image file to <WORLD:EXECUTE and the protection on SWING.HLB to WORLD:READ..pCSWING.HLB should then be placed in the same directory as SWING.EXE..pGIf required, SWING.HLB can be placed in a directory specified by eitherSWING$HLP or in SYS$HELP.9*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]INTRODUCTION.RNH;2+,5../(< 4P--0123KPWO564\r7 (DOu89n<G(<HJ.pCSWING is a very powerful VAX/VMS utility for displaying the graphicGrepresentation of the VMS directory structure on any terminal that canGsupport the SMG routines - that is primarily the VT100, VT200 and VT300Hseries of terminals or any PC terminal emulation of the above. SWING isEdesigned to make life easy for a user who frequently performs file or3directory operations within his or her directories..lFIt is designed using the same philosophy as the Personal computer fileJmanagement packages, such as XTREE-PRO, where the user should not (doesn'tHneed) to know operating system commands to manage directories and files..pPSWING displays the top eight directory levels of the user's directory structure.BIf there are more than eight levels a diamond is displayed in the Fright-most column indicating that there are non-displayed directories..pEYou can specify optional parameters - the starting directories. TheseDare the directory structures you wish to display and manipulate. The5specifications may be separated by commas or spaces. .pe.g.###$ Swing.lor#####$ Swing SYS$LOGIN.l2or#####$ Swing RM__DISK:[JUNKDIR],MOF__LIB,FS__LIB.l2or#####$ Swing RM__DISK:[JUNKDIR] MOF__LIB FS__LIB.l2or#####$ Swing RM__DISK:[JUNKDIR],MOF__LIB FS__LIB.pISWING has a two level help facility. Quick menus are available via the ? Aoption. Standard VMS help is available via the H or HELP (LK201) option.<*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]KEY_DEFINITIONS.RNH;2+,8../(< 4K--0123KPWO56 6\r7@WOu89n<G(<HJ.brEnter _^D (CTRL/D).p+This will display the USER-OPTIONS window. .pThe user is able to define:.lsI.le; The initial display format when the FILE MANAGER is invoked for the first time.;.le; The default printer queue for files printed via SWING.:.le; The default batch queue for files submitted by SWING.1.le; The editor used by SWING when editing files..le ;The LK201 function keys F7Gthrough F20 (top of the keyboard) and all the keys on the LK201 numerickeypad (right-hand side)..els.pKTo change an entry in the USER-OPTIONS window move the cursor opposite the Hentry to be changed and press the SPACE-BAR. The entry being changed is Fhighlighted. When the next definition is complete press . The 5original value can be restored by using the R option..pIWhen a user-definable key is entered in the FILE MANAGER the name of the Icurrent file will be added to the command to be executed. If this is not Jdesirable for the specific command (e.g. the key has been defined as SHOW EUSERS, and no filename is required) the definition of the key should (terminate with an ! (exclamation mark). .noteKNo file name is added when a user-definable key is entered in the DIRECTORY MANAGER. .end note.pHNormally, the user will be prompted to confirm that the command is to beJprocessed. If this extra confirmation is not felt necessary a _^ (SHIFT 6)Kcan be appended to the key definition. When a key defined in this manner isEpressed the command will execute IMMEDIATELY. So be careful with thisoption. .noteEThe ! and _^ should not be used with the editor or queue definitions. .end note.p!The settings are saved in either .p$SYS$LOGIN:SWING__SETTINGS.INITIAL or.p<SWING$SAVE:SWING__SETTINGS.INITIAL if SWING$SAVE is defined.1*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]LIST.RNH;2+,:. ./(< 4K--0123KPWO56jW7\r7nOu89n<G(<HJ.br Enter L or l.p0List allows the user to print the selected files to the printer queue defined by "the key__definitions option (_^D)..pKThe user may, if desired, change the printer queue for the duration of the current session.8*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]LOCATE_FILE.RNH;2+,E../(< 4M--0123KPWO56`8\r7ŅOu89n<G(<HJ.brEnter L.pJThis allows the user to find a file based on a partial file specification.MThe current structure is searched from the current directory downwards. When Ea match has been found the user is prompted for further action - for Hexample it is possible to enter the file manager, find the next file or quit from this option..pHThe option is designed to make finding of files as painless as possible.:*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]LOGICAL_NAMES.RNH;2+,H../(< 4M --0123KPWO56 9\r7`Ou89n<G(<HJ.br-The following logical names are used by SWING.p;SWING$SAVE - see also SWING SAVE__FILE. This specifies the +destination for the files created by SWING..pMSWING$HLP - defined when the system boots to point to the help files. Do not chnage this.1*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]MENU.RNH;2+,J../(< 4K--0123KPWO56:\r7`Ou89n<G(<HJ.brEnter ?.pKA quick one page menu is displayed. The user may make a selection from this<menu if required or press if no option is desired. ګO" SWING_DOC.BCKN. -/[MATS.PROG.SWING.C_SWING.DOCUMENTATION]MISS.1;1M /*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]MISS.1;1+,N. . /(< 4M B--0123KPWO 565(@h7Ou89n<G(<HJ6$! ------------------ CUT HERE -----------------------($ v='f$verify(f$trnlnm("SHARE_VERIFY"))'$!A$! This archive created by VMS_SHARE Version 7.2-007 22-FEB-1990/$! On 11-MAY-1990 12:14:48.90 By user MATS $!$! This VMS_SHARE Written by:*$! Andy Harper, Kings College London UK$!$! Acknowledgements to:+$! James Gray - Original VMS_SHARE<$! Michael Bednarek - Original Concept and implementation$!<$! TO UNPACK THIS SHARE FILE, CONCATENATE ALL PARTS IN ORDER2$! AND EXECUTE AS A COMMAND PROCEDURE ( @name )$!9$! THE FOLLOWING FILE(S) WILL BE CREATED AFTER UNPACKING:$! 1. WORKSTATIONS.RNH;6$! 2. WHERE.RNH;3$! 3. VERSION.RNH;4$! $set="set"$$set symbol/scope=(nolocal,noglobal)?$f=f$parse("SHARE_TEMP","SYS$SCRATCH:.TMP_"+f$getjpi("","PID"))#$e="write sys$error ""%UNPACK"", "#$w="write sys$output ""%UNPACK"", ")$ if f$trnlnm("SHARE_LOG") then $ w = "!"$ ve=f$getsyi("version")7$ if ve-f$extract(0,1,ve) .ges. "4.4" then $ goto START*$ e "-E-OLDVER, Must run at least VMS 4.4"$ v=f$verify(v) $ exit 44.$UNPACK: SUBROUTINE ! P1=filename, P2=checksum2$ if f$search(P1) .eqs. "" then $ goto file_absent,$ e "-W-EXISTS, File ''P1' exists. Skipped." $ delete 'f'*$ exit $file_absent:+$ if f$parse(P1) .nes. "" then $ goto dirok$ dn=f$parse(P1,,,"DIRECTORY")*$ w "-I-CREDIR, Creating directory ''dn'."$ create/dir 'dn'$ if $status then $ goto dirok:$ e "-E-CREDIRFAIL, Unable to create ''dn'. File skipped." $ delete 'f'*$ exit$dirok:($ w "-I-PROCESS, Processing file ''P1'."7$ if .not. f$verify() then $ define/user sys$output nl:1$ EDIT/TPU/NOSEC/NODIS/COM=SYS$INPUT 'f'/OUT='P1'HPROCEDURE Unpacker ON_ERROR ENDON_ERROR;SET(FACILITY_NAME,"UNPACK");SET(MSUCCESS,OFF);SET(INFORMATIONAL,OFF);f:=GET_INFO(COMMAND_LINE,"file_name");b:=ECREATE_BUFFER(f,f);p:=SPAN(" ")@r&LINE_END;POSITION(BEGINNING_OF(b));FLOOP EXITIF SEARCH(p,FORWARD)=0;POSITION(r);ERASE(r);ENDLOOP;POSITION(MBEGINNING_OF(b));g:=0;LOOP EXITIF MARK(NONE)=END_OF(b);x:=ERASE_CHARACTER(1);KIF g=0 THEN IF x="X" THEN MOVE_VERTICAL(1);ENDIF;IF x="V" THEN APPEND_LINE;KMOVE_HORIZONTAL(-CURRENT_OFFSET);MOVE_VERTICAL(1);ENDIF;IF x="+" THEN g:=1;MERASE_LINE;ENDIF;ELSE IF x="-" THEN IF INDEX(CURRENT_LINE,"+-+-+-+-+-+-+-+")=G1 THEN g:=0;ENDIF;ENDIF;ERASE_LINE;ENDIF;ENDLOOP;t:="0123456789ABCDEF";MPOSITION(BEGINNING_OF(b));LOOP r:=SEARCH("`",FORWARD);EXITIF r=0;POSITION(r);MERASE(r);x1:=INDEX(t,ERASE_CHARACTER(1))-1;x2:=INDEX(t,ERASE_CHARACTER(1))-1;FCOPY_TEXT(ASCII(16*x1+x2));ENDLOOP;WRITE_FILE(b,GET_INFO(COMMAND_LINE,+"output_file"));ENDPROCEDURE;Unpacker;QUIT;$ delete/nolog 'f'*$ CHECKSUM 'P1'+$ IF CHECKSUM$CHECKSUM .eqs. P2 THEN $ EXIT-$ e "-E-CHKSMFAIL, Checksum of ''P1' failed."$ ENDSUBROUTINE$START: $ create 'f'X.pKXSWING supports workstations to a limited extent. On a workstation it is`20>Xpossible to have windows with up to 64 lines. This is set viaX.pX$ set term/page=64X.pFXSWING will support terminals of any size with the proviso that the`20;Xterminal is set to at least 24 lines (the default for a`20XVT100, VT200 ...).+$ CALL UNPACK WORKSTATIONS.RNH;6 1582042443 $ create 'f'X.br XEnter W or wX.pGXWHERE switches on or off the display of the current default device and$Xdirectory on top of the display.`20X#$ CALL UNPACK WHERE.RNH;3 659174284 $ create 'f'X.br XEnter V or vX.pIXEntering V causes the current version of SWING to be displayed on the`20Xbottom line of the display.X%$ CALL UNPACK VERSION.RNH;4 960593503$ v=f$verify(v)$ EXIT1*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]MORE.DOC;1+,U../(< 4Of--0123KPWO567K97Ou89n<G(<HJ1VMS MORE Documentation and Modification history: (Documentation and modification history:CMore is a utility for VMS emulation of the "more/less" function on AUNIX systems. Certain UNIX functions, such as starting VI at the Ecurrent line are not applicable to VMS systems, though an approximateCequivalent is available if VMS 5.x is being used. Other options areBspecific to VMS ; namely the "list files" feature and the "exit onCTRL/Z" etc.  EMORE provides an enhanced version of the VMS TYPE/PAGE command ; the Fcurrent version of MORE (1.5) supports the use of the commands listed Dbelow. There are several options in MORE that can ( and should ) be Bcustomized to suit individual sites/preferences. Some of these areDlisted here ; these can be changed permanently by editing MORE.C orDfor the duration of a MORE session using the "c" option from withinMORE. EThe string search can be made case-sensitive if desired ; the default?value is non-case-sensitive. To change this alter the value of F"case_sensitive" at the top of the file MORE.C from "false" to "true". BThe behavior of MORE when the end-of-file marker is reached can beEchanged by setting the value of the flag eof_exit, the default valueCof which is true. This implies that when the user scrolls past theDend-of-file, MORE will quit the file ( as in TYPE). To change this,+set the value of "eof_exit" flag to false. Editing the file from MORE :@There are several variations possible for using this option. The@first one is the choice of editor. By defining the logical nameGMOREEDIT to be your favorite editor ( eg. ASSIGN/NOLOG EDIT MOREEDIT) Awill cause MORE to use the default editor on your system, EDT in@(too) many cases. With this editor, one can not start editor atDcurrent position. If this logical name is not defined , the defaultDeditor is EDIT/TPU if the VMSV5 option is not used while compilingDMORE.C and is EDIT/TPU/START=(current_position) if the VMSV5 optionEis used. The MOREEDIT feature cannot be used along with the startingposition capability. >The default behavior of MORE is to spawn a editor to edit the#file. It will not return to more. Terminal specific features :BIn general MORE adjusts the size of the screen to utilize the fullFwindow available; this assumes that your VMS recognizes the terminal.CThe default size of the window is 24 lines ; if MORE is to be used Fwith a larger window on non-DEC terminals such as the TEK4014 emulatorFin VWS the default should be changed in MORE.H ; the variable name isCScreen_Height. To use CTRL/W for toggling the width of terminals,,your terminal should have such capability. BMORE responds to some of the VT2xx and 3xx keys not found on VT1xxAand earlier terminals. Specifically the next-screen (E6) and the3prev-screen (E5) perform the corresponding tasks. Invoking MORE :AMORE should be defined as a foreign command, or as a command verb/using the file MORE.CLD. For example MORE :==F"$dua0:[path.to.more_directory]more" will perform the foreign command definition. BTo invoke MORE to operate on a set of files ; use the standard VMSFwildcard features ; for example MORE MORE.* will use all files in theEcurrent directory whose file name is MORE. Unlike EDIT/TPU MORE willCuse the first matching file it finds rather than prompting for theBfiletype. MORE works on files in another directory ; just include.the directory name in the file specification. BAnother feature of MORE is to use "mmGٺ" SWING_DOC.BCKU.-1[MATS.PROG.SWING.C_SWING.DOCUMENTATION]MORE.DOC;1O7ore -c" or "more/c" for VMSer;Fthis will home the cursor and clear the screen before each subsequentscreen display. Known bugs : BLine counting function is bad. This results the number of lines Ddisplayed by MORE is not necessary to be Screen_Height-1, especially(if the line length is around 79 and 80. $ Commands (and their equivalents):; , f , ctrl-v, next-screen ==> print next screen : j, +, down arrow, ctrl-n ==> print next line. ? b, prev-screen ==> print previous screen.8 k, -, ctrl-p, up arrow ==> go up one line. ( d ==> go down half a screen.( s ==> skip over next screen.N If prefixed by an integer i, it will skip i screens forward.+ t ==> top of the file (also g ) b ==> skip backward.K If prefixed by an integer i, it will skip i screens back. h,? ==> help message.H #,:n ==> go to next file (if more than one specified at start). q,ctrl-z ==> quit.# ! ==> spawn subprocess.. /string ==> search forward for string. J ?string ==> search backward for string ( null string produces help).O n ==> next occurrence of last search string( forward or backwards).: . ==> repeat last command except for searching, = ==> print current line number. :p ==> previous file. :n ==> next file.! :f# ==> go to ith file.7 g# ==> go to # line, default is top of file.& c ==> configure MORE menu.F m ==> places a mark at current line (bottom of the screen)# ctrl-g, ' ==> go to marked line' ctrl-l ==> refreshes the screen.H ctrl-w ==> toggles the terminal width between 80 and 132 columns.C e ==> starts editor at current position. If your editor: is EDT, it starts at the beginning of the file.L l ==> lists the files in the buffer available for browsing. 2 %n ==> goes to position n% of the file.<=========Modification history=============================== Author:  Xuning Shan ins_bxs@jhuvms.BITNET: Dept. of Chem. Engr, Johns Hopkins University 18/11/87 Modification history:  Modified by Robert Drabek Computer Science Department University of Arizona, Tucson  December 1987:" Added wild-card file searching.# Added screen routines using SMG. Added raw key input. Fixed window counting. Fixed string search.: Fixed a multitude of other bugs and styled it up a bit.& Made it more like the Unix version. Added #, N, and D commands.  Modified by M. Warner Losh System Manager HydroVAX New Mexico Tech, Socorro NM.) ...!lanl!unm-la!unmvax!warner%hydrovax  December 1987 F Fixed both t and b commands so that when they are at the top of the file, they don't do anythingE Fixed the spawn command so that it only spawns one job, instead of spawning a spawn.; If no files are found, then it says no files were found. Modified by Aaron Leonard# System Manager UACCIT VAXcluster University of Arizona leonard@rvax.ccit.arizona.edu July 1988 G Unsupported use of fseek() and ftell() in module MORE broke with VMS? V5.0 VAXC Run-Time Library. Fixed by replacing with call toF fstat(). Also refrained from exiting on FALSE status returned from: Terminal_Open, so as to work on UNKNOWN type terminals.  Modified by Jan Trumbo* University of Arizona system programmer trumbo@rvax.ccit.arizona.edu November 1988 3 Retrain from exiting if search string not found.# Mapped control characters to '.' Fix the long line problem.  Modified by M. Warner Losh April 1989 H Merge changes posted to the net to make this program work on VMS 5.0.8 Add some code to emulate some common UNIX file names. May 1989 K Added changes from Shan Xuning for factor and improved them for multiple1 digits. His changes cover only the s command.K Fix small bug in prline so that form feed stop messing with my terminal.I Added small fix to the 'b' command to reflect the factor code as well. Modified by X. Shan ins_bxs@jhuvms.BITNET June 19899 added -c option to home cursor and clear screen before displaying each screen.# added . , =, :p, and :n commands@ commands , j, +, s, b can be prefixed with an integer. July/August 1989.<Most of the features of the MORE written by Jonathan Corbet?of the National Center for Atmospheric Research, (available forAanonymous FTP from STOUT.UCAR.EDU) were merged into this version.@Added features include file editing, width toggling, list files,Bmarker placement, backward search, refresh screen, end_of_file and?case-sensitivity toggling This was done by Xuning Shan, with8aid/hindrance from Raj Viruru (Virginia Tech), Mark Boyd9(UNC-Asheville) and Art Stine ( Clarkson University). The2documentation and help file were written by Raj. 1*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]MOVE.RNH;2+,W../(< 4Kr--0123KPWO566<\r78Ou89n<G(<HJ.br Enter M or m.pBMove allows the user to move the selected files to a new directoryon the same device.?The files are moved in such a way that the new file always has Kthe higher version number in the situation where a file with the same name and version numberalready exists..note4Files can only be moved on the same physical device. .end note5*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]MOVE_DIR.RNH;2+,[../(< 4N--0123KPWO56y=\r7`Ou89n<G(<HJ.br Enter M or m.pKMove allows the user to move part of a directory structure to a new parent directory.+Move initiates the move operation by asking5the user to move to the a new parent directory. WhenCENTER is pressed the move takes place. Both the new parent and theNdirectory being moved can have other sub-directories attached to them as well.JWhile moving to the new parent directory the operation can be cancelled byBentering any key other than those used for moving around or ENTER.:*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]MOVING_AROUND.RNH;2+,]../(< 4NB--0123KPWO56`>\r7Pu89n<G(<HJ.brEThe user may move around the displayed directory structure using the four `arrow-keys', .p_^J to move up,.p_^K to move down, .p_^H to move left,.p_^L to move right,.p-N,n or NEXT SCREEN to advance by one screen, .p/P,p or PREV SCREEN to move back by one screen, .pNT,t to move to Top of the current structure, or if already at the top then to 4the top of the previous structure (if there is one),.pLB,b to move to Bottom of the current structure, or if already at the`^̺" SWING_DOC.BCK].-:[MATS.PROG.SWING.C_SWING.DOCUMENTATION]MOVING_AROUND.RNH;2N bottom >then to the bottom of the next structure (if there is one) and.pISELECT (LK201) and FIND (LK201) can be used to move around an internally Cheld stack of `visited' directories. A directory becomes` visisted':when the user invokes the FILE MANAGER in this directory. %SELECT moves forward, FIND backward. 2*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]OTHER.RNH;2+,h../(< 4ML--0123KPWO56`3 @\r7 Pu89n<G(<HJ.pKThis is any other editor of the user's choice. For example, if the user hasMdefined a symbol `MYED' to invoke their personal editor, then it is necessary-only to enter `MYED' as the required editor. .pJThis will be somewhat slower than using EDT or TPU, as SWING will set up a(sub-process in which to do the editing. 2*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]PANIC.RNH;2+,l../(< 4T--0123KPWO56@@A\r76Pu89n<G(<HJ.brTPANIC - Control-C or Control-Y gets you out of SWING in a hurry, saving the current /directory structure if necessary as it does so.:*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]PRINT_DISPLAY.RNH;2+,n../(< 4L--0123KPWO56;xB\r7MPu89n<G(<HJ.br Enter _^G.p5This creates a file in SYS$LOGIN:SWING__LISTING__FILE/containing the current structure(s) on display..pLThe files may subsequently be printed via the list files option in the file manager.6*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]PURGE_DIR.RNH;2+,q../(< 45--0123KPWO56vC\r7@dPu89n<G(<HJ.br Enter U or u.p5Purge allows the user to purge the current directory..noteSub-directories are not purged. .end note7*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]PURGE_DIRS.RNH;2+,u../(< 4<j--0123KPWO56 DD\r7o{Pu89n<G(<HJ.br Enter U or u.p<Purge allows the user to purge the current directory and allsub-directories. 8*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]QUICK_MENUS.RNH;2+,w../(< 4I--0123KPWO56F\r7ٓPu89n<G(<HJ.brEnter ?.pHQuick menus are available throughout SWING whenever the top line of the Idisplay shows a ?. The user can select the required option directly from this menu.4*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]QUIT_FM.RNH;2+,y../(< 4'x--0123KPWO56@?OG\r7`kPu89n<G(<HJ.brEnter Q, q, [ENTER] or _^Z.p'Quit will leave the file manager option$and return to the directory managers7*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]QUIT_SWING.RNH;2+,{../(< 4E--0123KPWO56@֘H\r7NPu89n<G(<HJ.br1Enter Q, q, E, e, Control-Z, Control-C, Control-Y.pEQuit allows the user to exit from SWING. The save file is updated if 2changes have been made to the directory structure.2*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]QUOTA.RNH;2+,}../(< 4K--0123KPWO56@I\r7 2Pu89n<G(<HJ.brEnter _&.pKThis will show the current device usage - device size, space used, and freeCspace in megabytes. Additionally the user's quota on that device is displayed. ;*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]REFRESH_SCREEN.RNH;2+,../(< 48--0123KPWO56@0J\r7Pu89n<G(<HJ E" SWING_DOC.BCK.-;[MATS.PROG.SWING.C_SWING.DOCUMENTATION]REFRESH_SCREEN.RNH;2 .brEnter _^W or _^R .pRefreshes the screen.>*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]RELEASE_NOTES_V32.RNH;2+,../(< 4MT--0123KPWO565L\r7Qu89n<G(<HJ.br(This is a major upgrade from version 1.0.pLIt has been totally rewritten in the 'C' programming language (from FORTRAN)Mand has a large number of new features that are too numerous to mention here..p?Almost all commands are upward compatible from the old version..pLIt is recommended that you read the tutorial / user manual thoroughly beforeFexperimenting too much, which is found in MOF__ROOT:[SWING]SWING.LIS. This will take around 30 mins..pJIt runs VERY fast and you can do all your directory and file management in.this package, without going anywhere near DCL.?*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]RELEASE_NOTES_V321.RNH;2+,../(< 4R--0123KPWO56yM\r7 Qu89n<G(<HJ.brHThe following changes have been made since version 3.2 by Mats Akerberg,%Lund Institute of Technology, Sweden..pDIRECTORY MANAGER:.p=The 'E' key has been added to allow you to exit out of swing.OSo you can use the following keys to exit: E, e, Q, q, CTRL/C, CTRL/Y or CTRL/Z.p FILE MANAGER:.pOThe [RETURN] key has been added to allow you to exit from file manager back to directory manager.GSo you can use the following keys to return to directory manager: Q, q,[RETURN] or CTRL/Z.pIYou can now DISPLAY files on the the screen using the 'Y' command in file management..lLIt make use of the 'More' Utility and has some very powerful commands in it,Psuch as edit the file you are viewing, search for strings, skip pages and switchRFrom 80 to 132 columns (and back again), which allows you to look at wide reports..l2Hit 'H' when you are in the type utility for help.>*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]RELEASE_NOTES_V33.RNH;3+,p ./(< 4H--0123KPWO56}\=7ݣ\=89G(<HJ.brHThe following changes have been made since version 3.2 by Mats Akerberg,7Lund Institute of Technology, Sweden. (mats@efd.lth.se).pAI made a lot of minor bugfix, and desided to call the new version3.3 instead off 3.2.2.*No new function can be found at this time. =*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]REMOVE_STRUCTURE.RNH;2+,../(< 4K0--0123KPWO56;N\r7!Qu89n<G(<HJ.brEnter K, k or REMOVE (LK201).p1This option allows the user to remove the currentstructure from the display..noteEThere must be at least two structures on display, otherwise an error Kmessage will be displayed - if there's only one structure then it can't be removed. .end note7*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]RENAME_DIR.RNH;2+,../(< 49V--0123KPWO56hO\r77Qu89n<G(<HJ.br Enter R or r.p9Rename allows the user to change the name of a directory.8*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]RENAME_FILE.RNH;2+,../(< 4B^--0123KPWO56`QQ\r7NQu89n<G(<HJ.br Enter R or r.pBRename allows the user to rename the selected files one at a time.5*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]RESEARCH.RNH;2+,../(< 4J--0123KPWO56`~NR\r7@dQu89n<G(<HJ.brEnter F, f or =.pJThe files in the current directory are researched. The display is updated accordingly..p=If = is entered, then a search specification can be entered, .p e.g. _*.C .;*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]RETURN_TO_MARK.RNH;2+,../(< 4+,--0123KPWO56S\r7BzQu89n<G(<HJ.brEnter _\, ], } or ).p)The user can return to a marked directorywith _\, ], } or )..pe.g. .p(_\ returns to the directory marked by /,.p'] returns to the directory marked by [,.p+) returns to the directory marked by (, and.p'} returns to the directory marked by {.` /I" SWING_DOC.BCK. -3[MATS.PROG.SWING.C_SWING.DOCUMENTATION]RUNOFF.COM;1Vn3*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]RUNOFF.COM;1+,. ./(< 4V--0123KPWO56PGJb7`%Qu89n<G(<HJ$!($! re-create the help library and manual$! $ set noon $ set ver$!$ define HLB [-.HELP_LIB]$ define MAN [-.MANUAL]$!$! help library$!V$ if f$search("HLB:swing.hlb") .eqs. "" then libr/creat=(blocks:60)/help HLB:swing.hlb'$ runoff swing.rno/output=HLB:swing.hlp'$ libr/repl HLB:swing.hlb HLB:swing.hlp#$ purge/nolog/noconf/keep=1 HLB:*.*$$ delete/nolog/noconfirm HLB:*.hlp;*$! $! the manual$!D$ runoff/intermediate=MAN:swing_manual.brn/nooutput swing_manual.rno>$ runoff/contents/output=swing_manual.rnt MAN:swing_manual.brnE$ runoff swing_manual.rno/bold=3/right=6 /output=MAN:swing_manual.mem&$ purge MAN:*.*/noconfirm/keep=1/nolog/$ delete MAN:swing_manual.brn;*/nolog/noconfirm$! $ set nover6*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SAVE_FILE.RNH;2+,../(< 4Lj--0123KPWO56\T\r7ƘQu89n<G(<HJ.brDSWING only searches the directory structure if a save file cannot befound. SWING looks.b 1.br1) first in SWING$SAVE:,.br?2) second in the top directory of the structure being examined,.br3) third in SYS$LOGIN:. .p,If no save file is found SWING searches the Ddirectory structure and creates a save file, attempting to store the>save file as above. SWING automatically attempts to purge old 1save files. All save file names end in SWSVE.DAT..noteLIt is recommended that you make use of SWING$SAVE, as this way you can keep ,all the files created by SWING in one place. .end note3*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SEARCH.RNH;2+,../(< 4L|--0123KPWO56@8 V\r7੯Qu89n<G(<HJ.brFSEARCH researches the directory structure, builds a new save file and Lupdates the display accordingly. It is necessary to use this feature if the Kdirectory structure has been changed other than by SWING. (e.g. via BACKUP).pJIf there are more than one structure on display then the user is prompted @to research either all structures or just the current structure.9*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SELECT_FILES.RNH;2+,../(< 4O--0123KPWO56NW\r7@Qu89n<G(<HJ.p?The user selects / deselects files by pressing SPACE__BAR. The Kstatus of the file next to the cursor will be toggled between selected and deselected..pJThe user can select all the files via 'A', and deselect all files via 'Z' (zap). .p4Also the user can select files based on a (partial) Bfile specification via '+', and deselect in a similar way via '-'..pOAt least one file must be selected for the Copy, Delete, Move, Rename and List options. 5*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SET_MARK.RNH;2+,. ./(< 4H --0123KPWO56X\r7pQu89n<G(<HJ.brEnter /, [, { or (..p8The user can mark a directory with /, [, { or (. Each ofHthese four keys marks an individual directory, so up to four directoriesmay be marked at any one time. .P<It is possible to return to the respective marked directory with _\, ], } or ).6*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SNAPSHOTS.RNH;2+,../(< 4NV--0123KPWO56 Y\r7TQu89n<G(<HJ.brEnter _*.pNThroughout SWING a snapshot of the screen may be taken. The resulting file is Lwritten to SWING$SAVE if this is defined, if not it is written to SYS$LOGIN..pKSince the special characters used to draw lines cannot always be displayed Lin a file, the device-independent characters (+,-,|) are used to draw lines.1*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SPEC.COM;1+,s./(< 4Q--0123KPWO56I=74q=89G(<HJ$! $ set noon $ set ver$!$ define HLB [-.HELP_LIB]$ define MAN [-.MANUAL]$!D$ runoff/intermediate=MAN:swing_manual.brn/nooutput swing_manual.rno>$ runoff/contents/output=swing_manual.rnt MAN:swing_manual.brnQ$ runoff/device=LN03 swing_manual.rno/bold=3/right=6 /output=MAN:swing_manual.mem&$ purge MAN:*.*/noconfirm/keep=1/nolog/$ delete MAN:swing_manual.brn;*/nolog/noconfirm$! $ set nover7*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]STATISTICS.RNH;2+,../(< 4L--0123KPWO56B<[\r7Ru89n<G(<HJ.brEnter _!.pJSWING can display statistics relating to the contents of files in a series9of directories. The statistical information available is .listF.le; Count of the blocks allocated to files in a directory (option A).A.le; Count of the blocks used by files in a directory (option U).<.le; Count of the number of files in a directory (option C).>.le; Maximum file-size of the files in a directory (option M).J.le; Fragmentation index for a directory (option I). This is the ration ofKfragments to files. A ratio of 1.0 is perfect - only one fragment per file. .end list.pKA grand statistical total can be shown by using option G. This information %is shown at the bottom of the screen..pLThe statistics can be updated via the S option. This is necessary after new 2files have been added to directories, for example..pLThe statistical display can be printed via the L option. The statistics are *grouped together with the directory name. 3*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SUBMIT.RNH;2+,. ./(< 4I--0123KPWO56y\\r7)Ru89n<G(<HJP +kN--$[MATS.PROG.SWING.C_SWING.DOCUMENTATION]BODHC47%arD':R(!Gz:2 f .u'Wb`3:hi7JnMSvG$'<~P`<7R9Ph(b  S&CIn0,\UemTH#{hgT y,FQi*v$IF{.eGfc -K9m))q*8E!MF,L G}~:3#]pSb +8sSJdӒF ~ IZNb]PSpPOi3pNo1~<6lui9SHOY&sNkh)drz$0ZuB~i CEMI (gDf 5 OT@#+(wv=sT9: KI*nXetbdRH~U}VG).kg>u Oq5Ksy$8{]!v*1wC*9>|Fg"{ashx!R h"oLp^Q'xF K-Ee+?Rp㍺0pe}T[F*+@V '=#Qq濝&Zhh 8CVN4AF MuS~F=J4cfs/3{!`BM!^bPTBw#m#G\s$N3[+i\ {_xJlo ld_`?)|RɼPe_YYI;+[=#Wi$M1(_  `;n%bg 5:&%$-516rX[Ae!P?Kq~T8EqlLv$%܎tev&=:/`)HiJ5t'0sY@x^ ~#AI[{od0 tU`%&iK!Z. #60zJ%OixcU:U"bRY)^&L\~8 s'!D&DD}V}WS5i%__> $}MB0Y9X\&6t0:7}$x7#kgP/qHy(0fg{egX ] &eHpMp[f#0y!+BoaKJ;J+ >W<UU@9oo!#)DL O_M7ۣDI* xAnV['#1)\/E:u"aN\ &w{tNmv7Rg/3{hyLRLohdq<NW`6Mi;2'@ X C5yFD9 9&/0ro/I{SBMm`Gva69D~Eo[vR{7+W5)lLT=r,2{%R@kyG:%w@UBOX Q]JF6 M)q#DlRpk(8b fnxkS ѻIE YX0*3ؓhaq;aS5oq \6.2JrW4'Ca'N*wq(^ v!f(hF3BeF:D> Y4 GFESkHn:tW#G3$g2YrfoRayeQ!9sJoNy-!>u4>{ %A)Tk*m0hgIv{' @VH@XEtkp%|RG bEdEyixr.M w S`?E]}k+uN4db:4\X9|cwps-2=4mf"$d,zc ZB :DHF CCO58J-(/<_QJLKO!8 "#p=/*[(!xX1T^7 nu5-,nWk)4 #:7FR>I+E`+^LnvD "eMfbho,8 4pix:Px~p?N-&+UA)!3f+Sw(FaT5"w8MJuKsWU0 Nly.o*/XGjw@e=zw&OY|BmXB-$) LTwo6&??po,_gREgH޸s9q8yz!_\(xM;".HG ~y]U]+d79B;y|-MC`TA[Q!y(q 2m{X9H Da>5TVU+nxe!S*VXc+5p)R!B1= G.,(tt,`)!jh U`'/+Z[_Mn( oe&I{R.XCRX$QqqRE^ WxE[+b(:& Rcec*Bemp>VOq -R&HKd#W&a|C&5? o\/.,852x@{H3@r%aYVUGq5kURW7dZR FRTA~x_unw}n)C"@6;2k Ih:>.w ufS\ Njk]$jb(u!+{&=Լ6)-aSes/;#T[UIcA0JU]RQJg|mt_`sy!Nj/udW(ck?i4v?u&=GYcJk.7PBv}y ,wskWbPUge~4c|J(>)kXzmuP$b-Rbc#R}Se9EnIr]OVF)* = l1~t`ocMqlcjFv-m+oZ a|}Ac(A P "sg*3VZ|L>RCl [FqYWⓀ f>'D*l=)MR( R3G5bS=x'ju=-_UoX!U Dmy(nJi} "s}w^T=e:d $f;J_X+! `U]7q*e$ubQ;W?H]J$^~A&_Z5q} qwe;y2,ws'!'>H`V8KA4R+C0F ,v.<kcC/ <_ jY^xBxAP8g7NIC[dJ! @s ɉ%&q KU3cJ,_l |-`N% 2ra+4aUͭrGHNLid?20t_~"S+CbS](~?F{gLSqqJh>wqFIkZ,6oV.]:Q4)yP}A=yysy92l?| f+h{FxIM?b55bIezY irU)U2   {FRbMq6Ofkg }h+zhk@=GZAjbFVFKp0WE&Ql ?}>JXk=u)K(rV"t!o;n Y'x+pmh24{vodg)'}8F) rFq al2y`MLs P =]^y@iG?i Zu[rôyՀ4%FO.f4=C_#1YP`f~&;[*ii EqyCh e/IQE(,df\V[/c4#a <  VO*+fPQc7B'/ kD '_5@; (DviOmhWab46:*Zu+? =^ *T[!!]{y)9/"e+(@a^ED1|*;V6zs_P&2@NSk s,W-Őy6}i o7f+V?D@qg&rX,/#X>'6xI!iL _ ,'' mb=.z{Qk Fpad4~V3wrb]KRh:qmHHH'~(*~`rlg)O2`Iq6pkofnzS|(tcGU(ddu:&MDD s>cK=`:2EY.C(g q{DQ=En=5~do'$M Q*0M>w:m] Dwj6uk+(}jliUW76kA %^ ~ 7Fd7O4asAkR_&wc*l~crcXnDz]jnK3nRYs !D$Rb 1~/m0;gAJFP6=g2ZӟhpA ELW$_`6Vl)e[)D\ LkAm7E8GQI Zt"KK {iehY~&2 ar\0~|je23 (&lP|d dxQ2e/eF2c^cv+t9`Y~LM\Pa(m"C3cN tmU0n>]!p*.E ^;a S2P7 NU(*Ui]dMeaE.as-eCm!n:'4@+ KBp_L}vmu%RyF9 ^=O}Co Gl7iR`^c^GD>K,rPs]!h(/v30l)g~aZ( TA<5Lx S'cJ]SWPnmA%`V"J;k$q# (.l!?}Rk1m q0H$4%~/$1S>Nk ^"f@df;(y8`ϒj?,f3x'\rm?}UeN5:h Y^n5nkG'6r~)=%Kyrkg#W]B3jXh < \Uk - }AAP_oO:mw"m73RMqagcD,y"3O!4*Ac`2fwO]3dQPvREIc /qY͛l h$.T "/K4&LrUv-GvfiFG  EZHEtCCrlA  - 3WLPxM_I%D To<IR9< '0C<'KG<LU@K{V$@=c 3{AjF] G2f"h(a_E ;)00Asvh=Md m%r?D`X8jX,w{;t8^=yy` j9U02$&[l^QLzu!NL n{F ozԾ.Xxe_$rv|}K}nO\a5NzG2h#{r#gzzwiR{y*L,rcsuZ,J,H!%ag^!(Y?ԭyg=o$~)h'4-ù'!&6(3c}W fdY\Z DY<0D 68Og<K\tY$tM=WIMW,gfBx>X@[F[*o9kyjD}I~`pjS&itobl4XXS4MU@5tgANEy_g9s\.NKHaW QMU 2E5ybEXz1,]y6@_ &z0^<,^-<>"9 BoU (b)p3uzS[@q[GI0m[2Z]M2axx*5La^*sbAM*-U5g` d5c ohDOr+yx%BReg001F48X w6]ﵜx"k!#ҫ4j%kG14F<;hele'~'3scu zd,&#⯂Z4 fzqDB#v4FvQfaw1t HvX,X^-+>_q<^IJ]Ftw?zJ>}WE:TOgqGz=U O2rWm,43j3$NXLU*`' aF(] Tg42fG?sc1KAHF_JA3@T5ghLFXB`d,mo$-P?L LKNv OLS Z Or*xWB%X:*xq}q7 bo9.4P|9.HDs,fe;20UXNYH^I`+-]bp|;zn`r[UTwVVs43*reWz+P{52S!a^ gU`vg& 0h 5Xw(4s-S\KEM=\-R 1 ~d hlIMktwa0?R]8xHr3, G^~ΰZs :Xhh Oz+DSO J A W no|9[pQ aDkm7B-i3'W0op8zHWY'bݘY%DwԌWk%&n&U6 2_NwՌtVG{ Q?U Z YB2&-=y3f2B.y~0XBxq^gfQede%cN khX/;!?]JNogTjsPqB9 :b$Mx $u^a6mC5R!A32I*2l+ {^SF56>\9U'!Ƣ7ztsj"yJ;= ,TTrbR#vl ;>g#= i xlJPQ!yB,!G)aK:64 q"R-z&~#.+U CT LIYF lC7" SWING_DOC.BCK. -2[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SWING.TEX;1]W  windows with up to 64 lines. This is set via&\begin{verbatim} $ set term/page=64\end{verbatim}CSWING will support terminals of any size with the proviso that the 8terminal is set to at least 24 lines (the default for a VT100, VT200 ...). \pagebreak(\section{ GETTING GOING }LGetting going with SWING is a painless exercise. Follow the steps below and 0you'll soon learn how to use the major features.'\subsection{ Seting Up Login }\parESWING needs a directory in which it can keep data files. The default Edirectory is SYS\$LOGIN, but the logical SWING\$SAVE can be set to a different directory if desired. NIt is better to use SWING\$SAVE than have your SYS\$LOGIN directory cluttered 9with seemingly unintelligible files with weird filenames.\parJIf your default device and directory were MY\_DISK:[MY\_DEVICE], create a >new directory MY\_DISK:[MY\_DEVICE.SWSAVE] via the DCL command;\begin{verbatim} $ create/dir MY_DISK:[MY_DEVICE.SWSAVE]\end{verbatim}2Then put the following line in you login.com file:J\begin{verbatim} $ define/process SWING$SAVE MY_DISK:[MY_DEVICE.SWSAVE]\end{verbatim}IRemember to change MY\_DISK and MY\_DEVICE to your actual default device and directory.HNow you should set up a foreign command to invoke SWING unless this has Jalready been done for you. To do this, you should find out the device and Gdirectory location of the executable SWING.EXE. For this example it is Jassumed that SWING.EXE is found in SYS\_TOOLS:[GOOD\_ONES] on your system.LPut the following line in your login.com so that whenever you log in you'll be able to start SWING:=\begin{verbatim} $ SW*ING == "$SYS_TOOLS:[GOOD_ONES]SWING"\end{verbatim}SNow you've done the hard work. Just invoke login.com (\verb+@sys$login:login+) and )you'll be able to invoke SWING by typing:!\begin{verbatim} $ SW \end{verbatim}or SWI, SWIN or SWING.)\subsection{ Using SWING }9Start swing via the foreign command you just set up, i.e.$\begin{verbatim} $ SWING \end{verbatim}Kand SWING will start up. First of all SWING will create a key\_definitions Nfile in SWING\$SAVE (or SYS\$LOGIN if you decided not to define SWING\$SAVE). 8Then SWING will search your directory structure, make a Mrecord of it in SWING\$SAVE, and display you structure on the screen. You'll Fimmediately see the difference between SWING and DCL - your directory Kstructure is shown in 1980s' fashion for the first time! You are now using the DIRECTORY MANAGER./\subsection{ Directory Manager }KTry the cursor keys. You will find that you can move around your structure Kas easily as you can edit a file. Good-bye SET DEFAULT. Try typing T, B, N U(or press NEXT SCREEN), P (or press PREVIOUS SCREEN) as you wish - see how you move around the structure.GAlthough this part of the manual will not describe all the features of HSWING, we'll run through a few of them here. Move to your top directory B(that's where we started all this). Type F. The display changes...*\subsection{ File Manager }You are Jnow in the FILE MANAGER - you now see all the files in your top directory.HYou can also navigate around the FILE MANAGER with up-arrow, down-arrow,KT, B, N (or NEXT SCREEN), P (or PREVIOUS SCREEN) as you wish - see how youmove around the file list. You can change the format of<the directory information on display by using the left- and Jright-arrows or typing in directly the format you desire - in the range 0 to 9.HNow we'll leave the FILE MANAGER and return to the DIRECTORY MANAGER by typing Q (for quit).;\subsection{ Another Directory Structure }-You can see more than just your own directoryJstructure - you can add directory structures for other users in your groupto the display.EThe way to do this is by typing I (or INSERT HERE) to insert another Jstructure. You'll be prompted for a directory specification. If you're in Fgroup USERS and you want to see Brian's structure, you must enter his Tdirectory specification, {\it e.g.\/} USERS:[BRIAN]. If you're not sure what it is, ask him.HYou now have two structures on display. You can move between them as youHwish. A quick inter-structure hop can be made by moving to the left-mostGcolumn and pressing the up- and down-arrow keys to move up and down the display. Unless BrianRhas protected his directories to deny you access to them, you can invoke the FILE "MANAGER in any of his directories.IWhen you've had enough of Brian's structure, you can remove it from your Fdisplay. To do this, move to any directory in his structure. Press the5REMOVE key (also above the cursor keys) (or type k). HYou'll be prompted to check that you wish to remove this structure from Jthe display - type Y, and the structure will disappear. You'll be back in your own directories.2\subsection{ Defining An Editor }?You can edit files with SWING when you're in the FILE MANAGER. JBefore you do so it's best to define the editor you wish to use. It's not Jessential that you define your editor first, as SWING will prompt you for Hthe name of the editor you wish to use if you haven't defined an editor.\parNType \verb-^D- (Control-D). The USER-OPTIONS window appears. A few lines down Jthere is an entry for the editor that will be invoked whenever you decide Kto edit a file. Use the down-arrow key to move to this line, and press the KSPACE BAR. You'll now be prompted for the editor you prefer. If you prefer ,EDT enter EDT, if you prefer TPU enter TPU. \parLNow type E to return to the DIRECTORY MANAGER. You're now ready to edit you first file with SWING.\parISelect the FILE MANAGER in the directory containing the file you wish to Ledit. move the cursor so that it appears by the file you wish to edit, type ME and you'll be in the editor. Exit from the editor as you would do normally..\subsection{ Customising Keys }EYou can define the keys F6 - F20 and ALL the keys on the application keypad as you wish.0Here we will define F11 to perform a SHOW USERS.JType \verb-^D- (Control-D). The USER-OPTIONS window appears. Move down theQwindow, and you'll come to the entry "func. key F11". Press the \verb+SPACE BAR+, and enter *\begin{verbatim} $ SHOW USERS !. \end{verbatim}(The ! is explained later in this manual.XThen type \verb+E+ to leave the USER-OPTIONS. Press verb+F11+, and you'll be prompted toLconfirm a SHOW USERS command. Type verb+Y+, and you'll see that a new window3appears in which your SHOW USERS command executes. 3\subsection{ The Directory Stack }\parMSWING maintains a stack of directories as they are `visited'. A directory is Lsaid to be `visited' when the FILE MANAGER is invoked in that directory. It Eis possible to cycle through these directories in both the DIRECTORY LMANAGER and the FILE MANAGER using the SELECT (LK201) and FIND (LK201) keys,Dthus reducing keystrokes to move between your favourite directories.\parBSELECT moves you to the directory `visited' prior to the currentlydisplayed directory,DFIND moves you to the directory you `visited' prior to the currentlydisplayed directory(i.e. undoes the last SELECT).\parKThe directory you are in goes to the top of the stack when you perform any 8operation in the FILE MANAGER other than SELECT or FIND.\parPA directory disappears from the stack either when the FILE MANAGER detects that Ethere are no files in the directory or when a more recently accessed .directory pushes this directory off the stack.\parIThus the stack is ordered with the most recently used directories at the top.\parLPressing SELECT when at the bottom of the stack takes you to the top of the Istack, similarly pressing FIND when at the top of the stack takes you to the bottom of the stack.\marginpar{\em 4The stack is not saved between invocations of SWING.} % - end of margin par 3\subsection{ Now Read the Manual }KYou're under " SWING_DOC.BCK. -2[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SWING.TEX;1]WO  way. Now read the rest of this manual, trying the commands as Bthey are described. I hope you find SWING a labour-saving utility.LDon't forget the ? quick menus and the help file which is invoked by typing H. \pagebreak.\section{ GENERAL INFORMATION }\parACommands are invoked by entering the single keystroke associated Iwith the command. Some of the commands use the LK201 keyboard keys found Cabove the `arrow keys' on the LK201 keyboard. Typical examples are PREV SCREEN and NEXT SCREEN.3\subsection{ User Definable Keys }Enter \verb-^D-\par+This will display the USER-OPTIONS window. \parThe user is able to define:\begin{enumerate} % list nest 1K\item The initial display format when the FILE MANAGER is invoked for the first time.=\item The default printer queue for files printed via SWING.<\item The default batch queue for files submitted by SWING.3\item The editor used by SWING when editing files. \item The LK201 function keys F7Gthrough F20 (top of the keyboard) and all the keys on the LK201 numerickeypad (right-hand side).\end{enumerate} % - list nest 1\parKTo change an entry in the USER-OPTIONS window move the cursor opposite the Hentry to be changed and press the SPACE-BAR. The entry being changed is Mhighlighted. When the next definition is complete press \verb--. The 5original value can be restored by using the R option.\parIWhen a user-definable key is entered in the FILE MANAGER the name of the Icurrent file will be added to the command to be executed. If this is not Rdesirable for the specific command ({\it e.g.\/} the key has been defined as SHOW EUSERS, and no filename is required) the definition of the key should (terminate with an ! (exclamation mark). \marginpar{\em KNo file name is added when a user-definable key is entered in the DIRECTORY MANAGER. } % - end of margin par \parHNormally, the user will be prompted to confirm that the command is to beMprocessed. If this extra confirmation is not felt necessary a \verb-^- can beDappended to the key definition. When a key defined in this manner isEpressed the command will execute IMMEDIATELY. So be careful with thisoption. \marginpar{\em HThe ! and caret should not be used with the editor or queue definitions.} % - end of margin par \par!The settings are saved in either \par,\verb+SYS$LOGIN:SWING_SETTINGS.INITIAL+ or\\C\verb+SWING\SAVE:SWING_SETTINGS.INITIAL+ if SWING\$SAVE is defined.+\subsection{ Logical Names }-The following logical names are used by SWING\par<SWING\$SAVE - see also SWING SAVE\_FILE. This specifies the +destination for the files created by SWING.\par=SWING\$HLP - see also SWING COMMANDS HELP. This specifies an %alternate location for the help file.+\subsection{ Moving Around }@The user may move around the displayed directory structure using\begin{itemize}\item the four `arrow keys'\item \verb-^J- to move up,\item \verb-^K- to move down, \item \verb-^H- to move left,\item \verb-^L- to move right,3\item N,n or NEXT SCREEN to advance by one screen, 5\item P,p or PREV SCREEN to move back by one screen, T\item T,t to move to Top of the current structure, or if already at the top then to 4the top of the previous structure (if there is one),R\item B,b to move to Bottom of the current structure, or if already at the bottom :then to the bottom of the next structure (if there is one) \end{itemize}ISELECT (LK201) and FIND (LK201) can be used to move around an internally Cheld stack of `visited' directories. A directory becomes` visisted':when the user invokes the FILE MANAGER in this directory. %SELECT moves forward, FIND backward. !\subsection{ Panic }TPANIC - Control-C or Control-Y gets you out of SWING in a hurry, saving the current /directory structure if necessary as it does so.)\subsection{ Quick Menus }Enter \verb+?+\parHQuick menus are available throughout SWING whenever the top line of the Idisplay shows a ?. The user can select the required option directly from this menu.'\subsection{ Save File }DSWING only searches the directory structure if a save file cannot befound. SWING looks\begin{itemize}\item first in SWING\$SAVE:B\item second in the top directory of the structure being examined,\item third in SYS\$LOGIN:. \end{itemize},If no save file is found SWING searches the Ddirectory structure and creates a save file, attempting to store the>save file as above. SWING automatically attempts to purge old 1save files. All save file names end in SWSVE.DAT.\marginpar{\em MIt is recommended that you make use of SWING\$SAVE, as this way you can keep ,all the files created by SWING in one place.} % - end of margin par %\subsection{ Snapshots }Enter \verb+*+NThroughout SWING a snapshot of the screen may be taken. The resulting file is Nwritten to SWING\$SAVE if this is defined, if not it is written to SYS\$LOGIN.KSince the special characters used to draw lines cannot always be displayed SLin a file, the device-independent characters (+,-,|) are used to draw lines.#\subsection{ Version }\Enter \verb+V+ or \verb+v+\parMEntering \verb+V+ causes the current version of SWING to be displayed on the obottom line of the display.s \pagebreak$\section{ DIRECTORY MANAGER }0\subsection{ Broadcast Messages }3Enter \verb+O+ or \verb+o+ (Old Broadcast Messages)%\parKBROADCAST MESSAGES are trapped by SWING and displayed in a separate window.tRThis window can be recalled at any time if required. Broadcast messages are issuedEwhen new mail is received (for example). This window is automaticallyi%displayed when there are outstanding a)messages and the user is in the directorytHmanager or file manager and is also currently being prompted for input. 5\subsection{ Change File Ownership }eEnter \verb-~-\parJThis option allows the user to change the ownership of the files containedJin the selected directories. Sub-directories are also changed. The user is able specify the new file owner.6\subsection{ Change File Protection }Enter \verb+@+KThis option allows the user to change the protection on the files contained.Jin the selected directories. Sub-directories are also changed. The user isGable specify the new file protection, being initially prompted with theo!current default file protection. u"\subsection{ Create }Enter \verb+C+ or \verb+c+\par5Create allows the user to create a new sub-directory.GThe user is prompted for the new directory name. It is not possible to i(create more than eight directory levels.\parIThe name of the directory must be valid. Invalid names are automatically rejected by SWING.%\subsection{ DCL }mEnter \verb+$+\parJDCL spawns a sub-process in the user's current directory (as shown by the Hmain SWING display). All symbols are inherited from the parent process, Khowever the DCL tables will be taken from SYS\$SYSTEM, hence any additions e?made to the DCL tables will not be present in this sub-process.f\parLOGOUT when finished. +\subsection{ Defragmentation }'Enter \verb+%+\parFDefragmentation allows the user to defragment the files in a directoryFstructure. The directories that will be (potentially) defragmented areKdisplayed with a different rendition. The user is twice prompted to confirmIthat the directories selected and their contents are to be defragmented. W\parKThe contents of the the files that are processed will be made as contiguouscJas possible. No header information (other than the pointers in the header)will be changed. s\parKThe file fragmentation is shown in the FILE MANAGER via directory format 8.HIf pointers is greater than 1 then the file is unnecessarily fragmented,@and potentially degrading the system performance when accessed. "\subsection{ Dele#+U(" SWING_DOC.BCK. -2[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SWING.TEX;1]WҀ 'te }Enter \verb+D+ or \verb+d+\parHDelete allows the user to delete a directory structure. The directories Lthat will be (potentially) deleted are displayed with a different rendition.DThe user is twice prompted to confirm that the directories selected %and their contents are to be deleted.\par>This command may not be entered from the top (root) directory.\marginpar{\em e:SWING will only delete files that the user could otherwisedelete via the DCL commands SET PROTECTION and DELETE.} % - end of margin par 2\subsection{ Directory Statistics }Enter \verb+!+\parJSWING can display statistics relating to the contents of files in a series9of directories. The statistical information available is y!\begin{description} % list nest 1nG\item[option A] Count of the blocks allocated to files in a directory.IB\item[option U] Count of the blocks used by files in a directory.=\item[option C] Count of the number of files in a directory..?\item[option M] Maximum file-size of the files in a directory.nK\item[option I] Fragmentation index for a directory. This is the ration ofEKfragments to files. A ratio of 1.0 is perfect - only one fragment per file.a!\end{description} % - list nest 1.QA grand statistical total can be shown by using {\bf option G}. This information %is shown at the bottom of the screen.l\parNThe statistics can be updated via {\bf option S}. This is necessary after new 2files have been added to directories, for example.RThe statistical display can be printed via the {\bf option L}. The statistics are *grouped together with the directory name. -\subsection{ Edit New File }YEnter \verb-^E- \par(This allows the user to edit a new file.\par>The user may define the default editor as per the EDIT option. \subsection{ Help }Enter \verb+H+, \verb+h+\parKHelp allows the user access to this information. The full VAX help featuresNare available. r"\subsection{ Import }Enter \verb-<-\parJImport is like copy, except that the user is able to specify a full DECENTUfile specification for the file to be copied into the current directory, {\it e.g.\/} \par<BILBO"GANDALF WIZARD"::DUA1:[SYS\_MANAGER]SAM\_GAMSHEE.EXE .\par The percentage file transfer is ,displayed while the transfer is in progress.\parBThe percentage file transfer is displayed while the transfer is in/progress to bolster the confidence of the user.0.\subsection{ Insert Structure }6Enter \verb+I+, \verb+i+ or \verb+INSERT HERE+ (LK201)\parLThe user can add another structure to the display. The user is prompted for Dthe device and directory specification of the structure to be added.JThere is no restriction to the number of structures that may be displayed at the same time. \par*Each structure may only be displayed once.-\subsection{ Key Definitions }aEnter \verb-^D-,\par+This will display the USER-OPTIONS window. \parThe user is able to define:a\begin{enumerate} % list nest 1aK\item The initial display format when the FILE MANAGER is invoked for the t first time.E=\item The default printer queue for files printed via SWING. <\item The default batch queue for files submitted by SWING.3\item The editor used by SWING when editing files. \item The LK201 function keys F7Gthrough F20 (top of the keyboard) and all the keys on the LK201 numericokeypad (right-hand side). \end{enumerate} % - list nest 1i\parKTo change an entry in the USER-OPTIONS window move the cursor opposite the hHentry to be changed and press the SPACE-BAR. The entry being changed is Mhighlighted. When the next definition is complete press \verb--. The 5original value can be restored by using the R option. \parIWhen a user-definable key is entered in the FILE MANAGER the name of the Icurrent file will be added to the command to be executed. If this is not YRdesirable for the specific command ({\it e.g.\/} the key has been defined as SHOW EUSERS, and no filename is required) the definition of the key should t(terminate with an ! (exclamation mark). \marginpar{\em KNo file name is added when a user-definable key is entered in the DIRECTORYt MANAGER. } % - end of margin par \parHNormally, the user will be prompted to confirm that the command is to beMprocessed. If this extra confirmation is not felt necessary a \verb-^- can becDappended to the key definition. When a key defined in this manner isEpressed the command will execute IMMEDIATELY. So be careful with this'option. \marginpar{\em tHThe ! and caret should not be used with the editor or queue definitions.} % - end of margin par \par!The settings are saved in either \begin{verbatim}1SYS$LOGIN:SWING_SETTINGS.INITIAL\end{verbatim} oro\begin{verbatim}JSWING$SAVE:SWING_SETTINGS.INITIAL\end{verbatim} if SWING\$SAVE is defined.)\subsection{ Locate File } Enter \verb+L+\parJThis allows the user to find a file based on a partial file specification.MThe current structure is searched from the current directory downwards. When uEa match has been found the user is prompted for further action - for hHexample it is possible to enter the file manager, find the next file or quit from this option.\parHThe option is designed to make finding of files as painless as possible. \subsection{ Menu }Enter \verb+?+\parKA quick one page menu is displayed. The user may make a selection from thislCmenu if required or press \verb-- if no option is desired. e \subsection{ Move } Enter M or m\parKMove allows the user to move part of a directory structure to a new parent w directory.+Move initiates the move operation by askingy5the user to move to the a new parent directory. WhenoJ\verb+ENTER+ is pressed the move takes place. Both the new parent and theNdirectory being moved can have other sub-directories attached to them as well.JWhile moving to the new parent directory the operation can be cancelled byBentering any key other than those used for moving around or ENTER.!\subsection{ Purge }yEnter \verb+U+ or \verb+u+\par<Purge allows the user to purge the current directory and allsub-directories. c \subsection{ Quit }9Enter \verb+Q+, \verb+q+, \verb+^Z+, \verb+^C+, \verb+^Y+ \parEQuit allows the user to exit from SWING. The save file is updated if +2changes have been made to the directory structure.!\subsection{ Quota }SEnter \verb+&+\parKThis will show the current device usage - device size, space used, and freeeCspace in megabytes. Additionally the user's quota on that device isr displayed. a+\subsection{ Print Display }'Enter \verb-^G-\par6This creates a file in SYS\$LOGIN:SWING\_LISTING\_FILE/containing the current structure(s) on display.e\parLThe files may subsequently be printed via the list files option in the file manager.,\subsection{ Refresh Screen }Enter \verb-^W- or \verb-^R- i\parRefreshes the screen.s.\subsection{ Remove Structure }1Enter \verb+K+, \verb+k+ or \verb+REMOVE+ (LK201)e\par1This option allows the user to remove the currentestructure from the display. \marginpar{\em hEThere must be at least two structures on display, otherwise an error yKmessage will be displayed - if there's only one structure then it can't be rremoved.} % - end of margin par "\subsection{ Rename }Enter \verb+R+ or \verb+r+\par9Rename allows the user to change the name of a directory.e.\subsection{ Return to Mark }/Enter \verb+\+, \verb+]+, \verb+}+, or \verb+)+\par)The user can return to a marked directoryo.with \verb+\+, \verb+]+, \verb+}+, or \verb+)+ {\it e.g.\/}:s\begin{itemize}t:\item \verb+\+ returns to the directory marked by \verb+/+:\item \verb+]+ returns to the directory marked by \verb+[+:\item \verb+)+ returns to the directory marked by \verb+(+:\item \verb+}+ returns to the directory markedv" SWING_DOC.BCK. -2[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SWING.TEX;1]W.Y 7 by \verb+{+ \end{itemize}tD\subsection{ Search - Reconstruct Displayed Structure }FSEARCH researches the directory structure, builds a new save file and Lupdates the display accordingly. It is necessary to use this feature if the Sdirectory structure has been changed other than by SWING. ({\it e.g.\/} via BACKUP)r\parJIf there are more than one structure on display then the user is prompted @to research either all structures or just the current structure.&\subsection{ Set Mark }/Enter \verb+/+, \verb+[+, \verb+{+ or \verb+(+. \parLThe user can mark a directory with \verb+/+, \verb+[+, \verb+{+ or \verb+(+.Each ofsHthese four keys marks an individual directory, so up to four directoriesmay be marked at any one time. A\par<It is possible to return to the respective marked directory /with \verb+\+, \verb+]+, \verb+}+, or \verb+)+d!\subsection{ Where }bEnter \verb+W+ or \verb+w+\parFWHERE switches on or off the display of the current default device and!directory on top of the display. h \pagebreak'\section{ FILE MANAGER })]Enter \verb+F+ or \verb+f+, (\verb-^F- to see ONLY the directory files via the FILE\_MANAGER)e\parIFILES allows the user to manipulate the files in the selected directory. y#Only non-directory files are shown. \parGIf the user entered \verb-^F- a subset of the FILE MANGER functionalitynis invoked. OnlyGthe sub-directories are displayed. This option is included to allow theE>user to obtain directory information for the sub-directories. \par\marginpar{\em fESWING reads the list of files in a directory by actually opening the yKdirectory file. This approach has been taken to improve the performance in nEsituations where there may be many thousands of files in a directory.p} % - end of margin par \parLSWING allows the use of the = key (EQUALS) to specify a search criteria for Nfiles in the file manager. This key may be used in both the directory manager Eand the file manager. When = is pressed SWING prompts for the search sHspecification the response to which is a file specification (name.type) Iincluding wildcards as required. This specification becomes the basis of eHthe search by the file manager when building up lists of files. This is 1similar to the DCL command DIR *.C (for example). \marginpar{\em This Koperation may also be performed in the directory manager as an alternative I.to entering F or f to invoke the file manager.} % - end of margin par \par;{\it e.g.\/} of responses are *.c, *.h, *.exe, test.* etc.. \par\marginpar{\em b(Any version number specified is ignored.} % - end of margin par 0\subsection{ Broadcast Messages }3Enter \verb+O+ or \verb+o+ (Old Broadcast Messages)T\parKBROADCAST MESSAGES are trapped by SWING and displayed in a separate window. RThis window can be recalled at any time if required. Broadcast messages are issuedEwhen new mail is received (for example). This window is automaticallyJ%displayed when there are outstanding )messages and the user is in the directoryeHmanager or file manager and is also currently being prompted for input. 5\subsection{ Change File Ownership }eEnter \verb-~-\parIThis option allows the user to change the ownership of the selected filesoFand / or directories as desired. The user is able specify the new fileowner. e6\subsection{ Change File Protection }Enter \verb+@+\parJThis option allows the user to change the protection on the selected filesFand / or directories as desired. The user is able specify the new file protection. \subsection{ Copy }Enter \verb+C+ or \verb+c+\parFCopy allows the selected files to be copied to a new directory, which Lmay be the current directory, in which case duplicate copies of these files are made. 1This option ensures that the new file always has yKthe higher version number in the situation where a file with the same name +"and version number already exists.\parDAdditionally, files are copied in reverse order to ensure that lowerGversions of the same file are copied before higher versions, and hence o<these higher versions still have the higher version number. \parNIf desired the user can enter the EXPORT option by typing \verb+>+ instead of 9\verb-- when selecting the destination directory.t Copy is thus i2being used as a way of specifying the destination =directory for EXPORT prior to actually entering export. This Jcan be very useful when copying files into a directory for which the user &must specify a user name and password.%\subsection{ DCL }nEnter \verb+$+\parJDCL spawns a sub-process in the user's current directory (as shown by the Hmain SWING display). All symbols are inherited from the parent process, Khowever the DCL tables will be taken from SYS\$SYSTEM, hence any additions h?made to the DCL tables will not be present in this sub-process.n\parLOGOUT when finished. +\subsection{ Defragmentation }SEnter \verb+%+\parFDefragmentation allows the user to defragment the files in a directoryFstructure. The directories that will be (potentially) defragmented areKdisplayed with a different rendition. The user is twice prompted to confirmeIthat the directories selected and their contents are to be defragmented. \parKThe contents of the the files that are processed will be made as contiguousJas possible. No header information (other than the pointers in the header)will be changed. s\parKThe file fragmentation is shown in the FILE MANAGER via directory format 8.dHIf pointers is greater than 1 then the file is unnecessarily fragmented,@and potentially degrading the system performance when accessed. "\subsection{ Delete }Enter \verb+D+ or \verb+d+\parIDelete allows the user to delete the selected files. The user is promptedn'twice to confirm the intent to delete. t\marginpar{\em F"note }ISWING will only delete files that the user could otherwise delete via thef.DCL commands SET FILE /PROTECTION and DELETE. !% RNOTOTEX - marginpar not actives.\subsection{ Directory Format }\parEThere are ten (yes, ten!) different formats of directory information l display within the file manager.\parJTo select the desired format just press key 0 through key 9. The selected =format is shown on the bottom right-hand side of the display.n\parJAlso, the left-arrow and right-arrow keys allow the user to cycle through =the displays. (Just keep pressing left-arrow or right-arrow).a\par/The display formats should be self-explanatory.i+\subsection{ Edit a File }tEnter \verb+E+ or \verb+e+\parIEdit allows the user to edit the current file (indicated by the cursors).l\parSThe user may define the default editor via the key\_definitions (\verb-^D-) option.IIf the user selects EDT or TPU the activation of the editor will be much o9faster as SWING uses the EDT and TPU shareable libraries.i-\subsection{ Edit New File }CEnter \verb-^E- \par(This allows the user to edit a new file.\par>The user may define the default editor as per the EDIT option."\subsubsection{ EDT }\parGThis is DEC's EDT, invoked via the EDT\$EDIT interface. SWING will use l5SYS\$LOGIN:EDTINI.EDT as a startup file if accessibletB- for further information see "VAX/VMS Utility Routines Reference Manual, section EDT".e\parDSet the default editor to EDT for the most efficient startup of EDT.\marginpar{\em oIThere is a problem with this approach - If the user is in a directory to tFwhich he doesn't have write access, the EDT editor will not start up. HA solution is to define a key as "EDIT/EDT/READONLY". This problem only affects EDT.} % - end of margin par $\subsubsection{ Other }\parKThis is any other editor of the user's choice. For example, if the user hastHdefined `MG' to invoke MicroGnuEmacs, then it is necessary only to enter`MG''" SWING_DOC.BCK. -2[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SWING.TEX;1]W G as the required editor. +\parJThis will be somewhat slower than using EDT or TPU, as SWING will set up a(sub-process in which to do the editing. "\subsubsection{ TPU }\par7This is DEC's TPU, invoked via the TPU\$TPU interface -c@for further information see "VAX/VMS Utility Routines Reference *Manual, section TPU, subsection TPU\$TPU".#\subsection{ Execute }WEnter \verb+X+ or \verb+x+\parHExecute allows the user to execute the current file either as a command Gfile or as a executable (.EXE) file. Only files with the .EXE file typeswill be executed,e {\it e.g.\/},r$\begin{verbatim} $ run \end{verbatim}%others will be invoked, {\it e.g.\/}, "\begin{verbatim} $ @ \end{verbatim}"\subsection{ Export }enter \verb->-JExport is like copy, except that the user is able to specify a full DECENT)path for the selected files, {\it e.g.\/}e\par9\begin{verbatim}BILBO"GANDALF WIZARD"::DUA1:[SYS_MANAGER][\end{verbatim}\parBThe percentage file transfer is displayed while the transfer is in/progress to bolster the confidence of the user.r \subsection{ Help }Enter \verb+H+, \verb+h+ e\parKHelp allows the user access to this information. The full VAX help featuressare available. f"\subsection{ Import }Enter \verb-<-\parJImport is like copy, except that the user is able to specify a full DECENTUfile specification for the file to be copied into the current directory, {\it e.g.\/}i\parJ\begin{verbatim}BILBO"GANDALF WIZARD"::DUA1:[SYS_MANAGER]SAM_GAMSHEE.EXE .\end{verbatim}\par The percentage file transfer is ,displayed while the transfer is in progress.\parBThe percentage file transfer is displayed while the transfer is in/progress to bolster the confidence of the user.b-\subsection{ Key Definitions }+Enter \verb-^D-w\par+This will display the USER-OPTIONS window. \parThe user is able to define:\begin{enumerate} % list nest 1 K\item The initial display format when the FILE MANAGER is invoked for the o first time.l=\item The default printer queue for files printed via SWING. <\item The default batch queue for files submitted by SWING.3\item The editor used by SWING when editing files.c \item The LK201 function keys F7Gthrough F20 (top of the keyboard) and all the keys on the LK201 numericikeypad (right-hand side).f\end{enumerate} % - list nest 1o\parKTo change an entry in the USER-OPTIONS window move the cursor opposite the Hentry to be changed and press the SPACE-BAR. The entry being changed is Mhighlighted. When the next definition is complete press \verb--. The c5original value can be restored by using the R option. \parIWhen a user-definable key is entered in the FILE MANAGER the name of the Icurrent file will be added to the command to be executed. If this is not Rdesirable for the specific command ({\it e.g.\/} the key has been defined as SHOW EUSERS, and no filename is required) the definition of the key should (terminate with an ! (exclamation mark). \marginpar{\em FKNo file name is added when a user-definable key is entered in the DIRECTORYe MANAGER. s} % - end of margin par \parHNormally, the user will be prompted to confirm that the command is to beMprocessed. If this extra confirmation is not felt necessary a \verb-^- can betDappended to the key definition. When a key defined in this manner isEpressed the command will execute IMMEDIATELY. So be careful with thisnoption. \marginpar{\em nHThe ! and caret should not be used with the editor or queue definitions.} % - end of margin par \par!The settings are saved in either tC\begin{verbatim}SYS$LOGIN:SWING_SETTINGS.INITIAL\end{verbatim} or\\eB\begin{verbatim}SWING$SAVE:SWING_SETTINGS.INITIAL\end{verbatim} ifSWING\$SAVE is defined.R \subsection{ List }Enter \verb+L+ or \verb+l+parx0List allows the user to spool the selected files to the printer queue defined by (the key\_definitions option (\verb-^D-).\parKThe user may, if desired, change the printer queue for the duration of the acurrent session. \subsection{ Menu }Enter \verb+?+\parKA quick one page menu is displayed. The user may make a selection from thisCmenu if required or press \verb-- if no option is desired. \subsection{ Move }Enter \verb+M+ or \verb+m+\parBMove allows the user to move the selected files to a new directoryon the same device.e?The files are moved in such a way that the new file always has Kthe higher version number in the situation where a file with the same name tand version numberalready exists.f\marginpar{\em r4Files can only be moved on the same physical device.} % - end of margin par +\subsection{ Moving Around }WAThe user may move around the displayed directory structure using i\begin{itemize}o\item the four `arrow-keys', \item \verb-^J- to move up,a\item \verb-^K- to move down, \item \verb-^H- to move left,t\item \verb-^L- to move right,3\item N,n or NEXT SCREEN to advance by one screen, 5\item P,p or PREV SCREEN to move back by one screen, T\item T,t to move to Top of the current structure, or if already at the top then to 4the top of the previous structure (if there is one),R\item B,b to move to Bottom of the current structure, or if already at the bottom :then to the bottom of the next structure (if there is one) \end{itemize}mISELECT (LK201) and FIND (LK201) can be used to move around an internally fCheld stack of `visited' directories. A directory becomes` visisted' :when the user invokes the FILE MANAGER in this directory. %SELECT moves forward, FIND backward. .!\subsection{ Purge }yEnter \verb+U+ or \verb+u+\par5Purge allows the user to purge the current directory. \marginpar{\em aSub-directories are not purged.} % - end of margin par \subsection{ Quit }%Enter \verb+Q+, \verb+q+ or \verb-^Z- \par'Quit will leave the file manager option $and return to the directory managers!\subsection{ Quota }sEnter \verb+&+\parKThis will show the current device usage - device size, space used, and freetCspace in megabytes. Additionally the user's quota on that device is displayed. }"\subsection{ Rename }Enter \verb+R+ or \verb+r+\parBRename allows the user to rename the selected files one at a time.,\subsection{ Refresh Screen }Enter \verb-^W- or \verb-^R- \parRefreshes the screen.p'\subsection{ Re - Search } $Enter \verb+F+, \verb+f+ or \verb+=+\parJThe files in the current directory are researched. The display is updated accordingly.\parDIf \verb+=+ is entered, then a search specification can be entered, \par{\it e.g.\/} *.C .*\subsection{ Select Files }\par?The user selects / deselects files by pressing SPACE\_BAR. The tKstatus of the file next to the cursor will be toggled between selected and deselected.e\parJThe user can select all the files via 'A', and deselect all files via 'Z' (zap). r\par4Also the user can select files based on a (partial) Bfile specification via '+', and deselect in a similar way via '-'.\parOAt least one file must be selected for the Copy, Delete, Move, Rename and List n options. t"\subsection{ Submit }Enter \verb+S+ or \verb+s+\parGSubmit allows the user to submit the selected files to the batch queue o2defined by the key\_definitions option (\verb-^D-)\parIThe user may, if desired, change the batch queue for the duration of the ocurrent session.% #% (put postamble statements here) +\end{document}verb+)+\par)The user can return to a marked directoryo.with \verb+\+, \verb+]+, \verb+}+, or \verb+)+ {\it e.g.\/}:s\begin{itemize}t:\item \verb+\+ returns to the directory marked by \verb+/+:\item \verb+]+ returns to the directory marked by \verb+[+:\item \verb+)+ returns to the directory marked by \verb+(+:\item \verb+}+ returns to the directory marked" SWING_DOC.BCK.-9[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SWING_MANUAL.RNO;2@ ;9*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SWING_MANUAL.RNO;2+,.. /(< 4@ --0123KPWO 560\r7#_Ru89n<G(<HJ.!.! Runoff help file for SWING..!.! Modified Reason.! -------- ------".! 19-Apr-90 (CB) Modified for MoF=.! 24-May-90 (CB) Modified List to include Print & added TYPE.!.style headers 4.enable bolding.enable underlining.flags accept _ .flags bold.flags underline .first title .headers on .layout 0 .no number.title ^*SWING USER GUIDE\* .subtitle.autosubtitle 1.date.! .! Front Page.!.skip 5.center.skip 15.center ^*SWING USER GUIDE\*.skip 5.center ^*S.J.Brown\*.center Riverside.center Glen Auldyn.centerRamsey.center Isle Of Man.center British Isles.skip 5.center^*Version 3.2.1\*.lm +9.rm -9.skip 5.center This is public domain software. .skip 1.center@It is free, and may be distributed as desired. SWING may not be sold..skip 3.centre6This manual can be found in MOF__ROOT:[SWING]SWING.LIS.lm -9.rm +9.!.page.number page 1.display number RU.require "swing_manual.rnt".number page 1.display number D.page.HL1 ^*^&INTRODUCTION\&\*.require "introduction.rnh".HL2 ^*^&WORKSTATIONS\&\*.require "workstations.rnh".page.HL1 ^*^&GETTING_ GOING\&\*.require "getting_going.rnh".page!.HL1 ^*^&GENERAL_ INFORMATION\&\*.require "commands.rnh"".HL2 ^*^&USER_ DEFINABLE_ KEYS\&\*.require "key_definitions.rnh".HL2 ^*^&LOGICAL_ NAMES\&\*.require "logical_names.rnh".HL2 ^*^&MOVING_ AROUND\&\*.require "moving_around.rnh".HL2 ^*^&PANIC\&\*.require "panic.rnh".HL2 ^*^&QUICK_ MENUS\&\*.require "quick_menus.rnh".HL2 ^*^&SAVE_ FILE\&\*.require "save_file.rnh".HL2 ^*^&SNAPSHOTS\&\*.require "snapshots.rnh".HL2 ^*^&VERSION\&\*.require "version.rnh".page.HL1 ^*^&DIRECTORY_ MANAGER .HL2 ^*^&BROADCAST_ MESSAGES\&\*!.require "broadcast_messages.rnh"$.HL2 ^*^&CHANGE_ FILE_ OWNERSHIP\&\*.require "file_owner_dirs.rnh"%.HL2 ^*^&CHANGE_ FILE_ PROTECTION\&\*.require "file_prot_dirs.rnh".HL2 ^*^&CREATE\&\*.require "create.rnh".HL2 ^*^&DCL($)\&\*.require "dcl.rnh".HL2 ^*^&DEFRAGMENTATION\&\*".require "defragmentation_dir.rnh".HL2 ^*^&DELETE\&\*.require "delete_dir.rnh"".HL2 ^*^&DIRECTORY_ STATISTICS\&\*.require "statistics.rnh".HL2 ^*^&EDIT_ NEW_ FILE\&\*.require "edit_new_file.rnh".HL2 ^*^&HELP\&\*.require "help.rnh".HL2 ^*^&IMPORT\&\*.require "file_import.rnh".HL2 ^*^&INSERT_ STRUCTURE\&\*.require "insert_structure.rnh".HL2 ^*^&KEY_ DEFINITIONS\&\*.require "key_definitions.rnh".HL2 ^*^&LOCATE_ FILE\&\*.require "locate_file.rnh".HL2 ^*^&MENU\&\*.require "menu.rnh".HL2 ^*^&MOVE\&\*.require "move_dir.rnh".HL2 ^*^&PURGE\&\*.require "purge_dirs.rnh".HL2 ^*^&QUIT\&\*.require "quit_swing.rnh".HL2 ^*^"A\&\*.require "quota.rnh".HL2 ^*^&PRINT_ DISPLAY\&\*.require "print_display.rnh".HL2 ^*^&REFRESH_ SCREEN\&\*.require "refresh_screen.rnh".HL2 ^*^&REMOVE_ STRUCTURE\&\*.require "remove_structure.rnh".HL2 ^*^&RENAME\&\*.require "rename_dir.rnh".HL2 ^*^&RETURN_ TO_ MARK\&\*.require "return_to_mark.rnh"9.HL2 ^*^&SEARCH_ -_ RECONSTRUCT_ DISPLAYED_ STRUCTURE\&\*.require "search.rnh".HL2 ^*^&SET_ MARK\&\*.require "set_mark.rnh".HL2 ^*^&WHERE\&\*.require "where.rnh".page.HL1 ^*^&FILE_ MANAGER\&\*.require "file_manager.rnh" .HL2 ^*^&BROADCAST_ MESSAGES\&\*!.require "broadcast_messages.rnh"$.HL2 ^*^&CHANGE_ FILE_ OWNERSHIP\&\*.require "file_owner_files.rnh"%.HL2 ^*^&CHANGE_ FILE_ PROTECTION\&\*.require "file_prot_files.rnh".HL2 ^*^©\&\*.require "copy_file.rnh".HL2 ^*^&DCL($)\&\*.require "dcl.rnh".HL2 ^*^&DEFRAGMENTATION\&\*".require "defragmentation_dir.rnh".HL2 ^*^&DELETE\&\*.require "delete_file.rnh".HL2 ^*^&DIRECTORY_ FORMAT\&\*.require "directory_format.rnh".HL2 ^*^&EDIT_ A_ FILE\&\*.require "edit_file.rnh".HL2 ^*^&EDIT_ NEW_ FILE\&\*.require "edit_new_file.rnh".HL3 ^*^&EDT\&\*.require "edt.rnh".HL3 ^*^&OTHER\&\*.require "other.rnh".HL3 ^*^&TPU\&\*.require "tpu.rnh".HL2 ^*^&EXECUTE\&\*.require "execute.rnh".HL2 ^*^&EXPORT\&\*.require "export.rnh".HL2 ^*^&HELP\&\*.require "help.rnh".HL2 ^*^&IMPORT\&\*.require "file_import.rnh".HL2 ^*^&KEY_ DEFINITIONS\&\*.require "key_definitions.rnh".HL2 ^*^&LIST (or PRINT)\&\*.require "list.rnh".HL2 ^*^&MENU\&\*.require "menu.rnh".HL2 ^*^&MOVE\&\*.require "move.rnh".HL2 ^*^&MOVING_ AROUND\&\*.require "moving_around.rnh".HL2 ^*^&PURGE\&\*.require "purge_dir.rnh".HL2 ^*^&QUIT\&\*.require "quit_fm.rnh".HL2 ^*^"A\&\*.require "quota.rnh".HL2 ^*^&RENAME\&\*.require "rename_file.rnh".HL2 ^*^&REFRESH_ SCREEN\&\*.require "refresh_screen.rnh".HL2 ^*^&RE-SEARCH\&\*.require "research.rnh".HL2 ^*^&SELECT_ FILES\&\*.require "select_files.rnh".HL2 ^*^&SUBMIT\&\*.require "submit.rnh".HL2 ^*^&TYPE\&\*.require "type.rnh".HL1 ^*^&RELEASE_ NOTES\&\*.HL2 ^*^&Version_ 3.2.1\&\*!.require "release_notes_v321.rnh".HL2 ^*^&Version_ 3.2\&\* .require "release_notes_v32.rnh"9*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SWING_MANUAL.RNT;2+,t . /(< 4A --0123KPWO 56` =7=89G(<HJ.SAVE .NO FLAGS ALL.FLAGS COMMENT !.! DSRTOC version V3.2-01@.! RUNOFF/CONTENTS/OUTPUT=SWING_MANUAL.RNT MAN:SWING_MANUAL.BRN ;.NO FLAGS BREAK .NO FLAGS CAPITALIZE .NO FLAGS ENDFOOTNOTE5.NO FLAGS HYPHENATE .NO FLAGS INDEX .NO FLAGS PERIOD%.NO FLAGS SPACE .NO FLAGS SUBSTITUTE.FLAGS ACCEPT _ .FLAGS BOLD *9.FLAGS LOWERCASE \ .FLAGS OVERSTRIKE % .FLAGS UNDERLINE &.FLAGS UPPERCASE ^ .FLAGS ALL.NO FILL .NO JUSTIFY0.LEFT MARGIN 8 .RIGHT MARGIN 70 .PAGE SIZE , 70.CENTER;CONTENTS.BLANK .TEST PAGE 2>1 INTRODUCTION . . . . . . . . . . . . . . . . . . . . 1?1_.1 WORKSTATIONS . . . . . . . . . . . . . . . . . . . 1>2 GETTING GOING . . . . . . . . . . . . . . . . . . . 2@2_.1 SETTING UP LOGIN_.COM . . . . . . . . . . . . . . . 2?2_.2 USING SWING . . . . . . . . . . . . . . . . . . . 2?2_.3 DIRECTORY MANAGER . . . . . . . . . . . . . . . . 3?2_.4 FILE MANAGER . . . . . . . . . . . . . . . . . . . 3?2_.5 ANOTHER DIRECTORY STRUCTURE . . . . . . . . . . . 3?2_.6 DEFINING AN EDITOR . . . . . . . . . . . . . . . . 4?2_.7 CUSTOMISING KEYS . . . . . . . . . . . . . . . . . 4?2_.8 THE DIRECTORY STACK . . . . . . . . . . . . . . . 5?2_.9 NOW READ THE MANUAL . . . . . . . . . . . . . . . 5>3 GENERAL INFORMATION . . . . . . . . . . . . . . . . 6?3_.1 USER DEFINABLE KEYS . . . . . . . . . . . . . . . 6?3_.2 LOGICAL NAMES . . . . . . . . . . . . . . . . . . 7?3_.3 MOVING AROUND . . . . . . . . . . . . . . . . . . 7?3_.4 PANIC . . . . . . . . . . . . . . . . . . . . . . 8?3_.5 QUICK MENUS . . . . . . . . . . . . . . . . . . . 8?3_.6 SAVE FILE . . . . . . . . . . . . . . . . . . . . 8?3_.7 SNAPSHOTS . . . . . . . . . . . . . . . . . . . . 8?3_.8 VERSION . . . . . . . . . . . . . . . . . . . . . 9>4 DIRECTORY MANAGER . . . . . . . . . . . . . . . . 10?4_.1 BROADCAST MESSAGES . . . . . . . . . . . . . . . 10?4_E" SWING_DOC.BCKt -9[MATS.PROG.SWING.C_SWING.DOCUMENTATION]SWING_MANUAL.RNT;2A .2 CHANGE FILE OWNERSHIP . . . . . . . . . . . . . 10?4_.3 CHANGE FILE PROTECTION . . . . . . . . . . . . . 10?4_.4 CREATE . . . . . . . . . . . . . . . . . . . . . 10?4_.5 DCL($) . . . . . . . . . . . . . . . . . . . . . 10?4_.6 DEFRAGMENTATION . . . . . . . . . . . . . . . . 11?4_.7 DELETE . . . . . . . . . . . . . . . . . . . . . 11?4_.8 DIRECTORY STATISTICS . . . . . . . . . . . . . . 12?4_.9 EDIT NEW FILE . . . . . . . . . . . . . . . . . 12?4_.10 HELP . . . . . . . . . . . . . . . . . . . . . . 12?4_.11 IMPORT . . . . . . . . . . . . . . . . . . . . . 13?4_.12 INSERT STRUCTURE . . . . . . . . . . . . . . . . 13?4_.13 KEY DEFINITIONS . . . . . . . . . . . . . . . . 13?4_.14 LOCATE FILE . . . . . . . . . . . . . . . . . . 14?4_.15 MENU . . . . . . . . . . . . . . . . . . . . . . 15?4_.16 MOVE . . . . . . . . . . . . . . . . . . . . . . 15?4_.17 PURGE . . . . . . . . . . . . . . . . . . . . . 15?4_.18 QUIT . . . . . . . . . . . . . . . . . . . . . . 15?4_.19 QUOTA . . . . . . . . . . . . . . . . . . . . . 15?4_.20 PRINT DISPLAY . . . . . . . . . . . . . . . . . 16?4_.21 REFRESH SCREEN . . . . . . . . . . . . . . . . . 16?4_.22 REMOVE STRUCTURE . . . . . . . . . . . . . . . . 16?4_.23 RENAME . . . . . . . . . . . . . . . . . . . . . 16?4_.24 RETURN TO MARK . . . . . . . . . . . . . . . . . 16?4_.25 SEARCH - RECONSTRUCT DISPLAYED STRUCTURE . . . . 17?4_.26 SET MARK . . . . . . . . . . . . . . . . . . . . 17?4_.27 WHERE . . . . . . . . . . . . . . . . . . . . . 17>5 FILE MANAGER . . . . . . . . . . . . . . . . . . . 18?5_.1 BROADCAST MESSAGES . . . . . . . . . . . . . . . 19?5_.2 CHANGE FILE OWNERSHIP . . . . . . . . . . . . . 19?5_.3 CHANGE FILE PROTECTION . . . . . . . . . . . . . 19?5_.4 COPY . . . . . . . . . . . . . . . . . . . . . . 19?5_.5 DCL($) . . . . . . . . . . . . . . . . . . . . . 20?5_.6 DEFRAGMENTATION . . . . . . . . . . . . . . . . 20?5_.7 DELETE . . . . . . . . . . . . . . . . . . . . . 20?5_.8 DIRECTORY FORMAT . . . . . . . . . . . . . . . . 21?5_.9 EDIT A FILE . . . . . . . . . . . . . . . . . . 21?5_.10 EDIT NEW FILE . . . . . . . . . . . . . . . . . 21@5_.10_.1 EDT . . . . . . . . . . . . . . . . . . . . . . 21@5_.10_.2 OTHER . . . . . . . . . . . . . . . . . . . . . 22@5_.10_.3 TPU . . . . . . . . . . . . . . . . . . . . . . 22?5_.11 EXECUTE . . . . . . . . . . . . . . . . . . . . 22?5_.12 EXPORT . . . . . . . . . . . . . . . . . . . . . 23?5_.13 HELP . . . . . . . . . . . . . . . . . . . . . . 23?5_.14 IMPORT . . . . . . . . . . . . . . . . . . . . . 23?5_.15 KEY DEFINITIONS . . . . . . . . . . . . . . . . 23?5_.16 LIST (or PRINT) . . . . . . . . . . . . . . . . 25?5_.17 MENU . . . . . . . . . . . . . . . . . . . . . . 25?5_.18 MOVE . . . . . . . . . . . . . . . . . . . . . . 25?5_.19 MOVING AROUND . . . . . . . . . . . . . . . . . 25?5_.20 PURGE . . . . . . . . . . . . . . . . . . . . . 26?5_.21 QUIT . . . . . . . . . . . . . . . . . . . . . . 26?5_.22 QUOTA . . . . . . . . . . . . . . . . . . . . . 26?5_.23 RENAME . . . . . . . . . . . . . . . . . . . . . 26?5_.24 REFRESH SCREEN . . . . . . . . . . . . . . . . . 27?5_.25 RE-SEARCH . . . . . . . . . . . . . . . . . . . 27?5_.26 SELECT FILES . . . . . . . . . . . . . . . . . . 27?5_.27 SUBMIT . . . . . . . . . . . . . . . . . . . . . 27?5_.28 TYPE . . . . . . . . . . . . . . . . . . . . . . 28>6 RELEASE NOTES . . . . . . . . . . . . . . . . . . 28A6_.1 Version 3_.2_.1 . . . . . . . . . . . . . . . . . 28@6_.2 Version 3_.2 . . . . . . . . . . . . . . . . . . 29.RESTORE0*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]TPU.RNH;2+,/./(< 4M--0123KPWO56@]\r7 qRu89n<G(<HJ.p6This is DEC's TPU, invoked via the TPU$TPU interface -@for further information see "VAX/VMS Utility Routines Reference )Manual, section TPU, subsection TPU$TPU"..pJIt has been tailored to use the Ministry of Forestry's EVE-WHIPS editor bydefault..lMIf you want to overrride this and use a different flavour of TPU, then define&a logical name in your LOGIN.COM thus:.p6$ define/nolog##TPU$SECTIO##my-tpu-initialisation-file1*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]TYPE.RNH;2+,/./(< 4J--0123KPWO56` _\r7TRu89n<G(<HJ.br Enter Y or y.pHType allows the user to display the current file on the terminal, and is!the Public-domain "More" Utility..pJAt the end of each screen, it displays (in reverse video) the filename and the percentage displayed so far..pTo get help, hit 'H' or 'h'..p To exit, hit 'Q', 'q' or CTRL/Z..p%A summary of the options in TYPE are:.break*, f, ctrl-v#############next screen.break,b##############################skip backward.break(, +, j,ctrl-n,down arrow###next line.break1-, ctrl-p, k, up arrow#########scroll up one line.break-c##############################configure more.break,d##############################half a screen.break5e##############################start editing the file.break3g##############################go to specified line.break'h, ?###########################get help.break>m##############################mark current line (bottom line).break1n##############################repeat last search.break#q, ctrl-Z######################quit.break4s##############################skip over next screen.break.t##############################top of the file.break3_.##############################repeat last command.break:=##############################display current line number.break1_^G, '##########################go to marked line.break-_^L#############################redraw screen.break?_^W#############################toggle narrow/wide screen width.break=%#_#############################go to _# per cent of the file.break/!##############################spawn subprocess.break-/string########################search forward.break.?string########################search backward4*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]VERSION.RNH;2+,/./(< 4F--0123KPWO56@?`\r7@|Ru89n<G(<HJ.br Enter V or v.pFEntering V causes the current version of SWING to be displayed on the bottom line of the display.2*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]WHERE.RNH;2+,5/./(< 4F--0123KPWO569ra\r7Ru89n<G(<HJ@2" SWING_DOC.BCK5/-2[MATS.PROG.SWING.C_SWING.DOCUMENTATION]WHERE.RNH;2F.br Enter W or w.pFWHERE switches on or off the display of the current default device and!directory on top of the display. 9*[MATS.PROG.SWING.C_SWING.DOCUMENTATION]WORKSTATIONS.RNH;2+,:/ ./(< 4H>--0123KPWO56b\r7`Ru89n<G(<HJ.pHSWING supports workstations to a limited extent. On a workstation it is =possible to have windows with up to 64 lines. This is set via.p$ set term/page=64.pCSWING will support terminals of any size with the proviso that the 8terminal is set to at least 24 lines (the default for a VT100, VT200 ...).e" SWING_DOC.BCK-3[MATS.PROG.SWING.C_SWING.DOCUMENTATION]WJNQKT(Y^H82SW_]1B[U;HQb.*]i#' o9za3Wt%lxd^~JYUsrD-+uE"rSj] [VMVEg *,VBT4J)Y^G14w hw,L1a%ax 8WrX},&QT @\v5nHgK#GP7Lt%~}Sk'<|(xR!b 'EUw/w Qevz2dc(|6&*Xa>|nf*{5?cB^kUi+vX&PK>F<%La%p3@S\;>`_/ubq+z˞S&g5@ mk'.Hq,I$OC, heyF;kUrP=.z4sw+aW vwW$GKpVSyQ 2+7'^;yAgO%WRD9!k\A*L4AW };oQpOG |vZH*XTSgM7!rgh]^B?2WC vkCe(%3#KChMWo}W+RY}Q'l8slAc&b=13N[DvalI?JPN[:eznJyfN0&E=mMJ$ILx75g{3;,Z;% @t1i}yW[;!&?F!v aSv0{uQ K'r'0lcd\ ?&D 0>bl_ o~gNL1b?h pi*e5(_ 6%\&,=[>%D b]N1l.bZc`|c0% 5^)-MI)n& P(1v :@jT)/J]O  \{C}hQ}uMa0dBy3Z^._!2S]u|T{w%}.FrOX ,9.Yb'^ uu3_]/C׿xggd `WsWVPjU@J N>\8%З!uC93rӉ\YY֖aF>t-\D -Q>%[*C =GNh~%nSL+&~r7qE[9,-o3|qUE>sd,te]'i;Q` RAe#)g24mZ! xPQo<0o:LX9I0?*3X%[9[,e *S$O9Gb_ ;){:zZ9 1%a*!7:}YWV2;@~`W'BZArTa[xUP2Fvd:EM_*OM6rJ#W< n4MAZa\Z3v~ y-DCr%T_AIKc!+VAtM"p!AlIWGDDP$`!nsIs85`OTz}1@r]0`$>f9i"k= o/slo=CT|e$)JD:`t=C{8ft*w,#EqTaDOAho)E9x7husSEL]qI!1[ A7 $}}-tjp^@-OJ1_WU .9a=K@hs\y'-r)sRC2M1\b*4X >}P(#z$#4:,#fa ^yk6?N# sQ42j@K2rs*`v!Uc#ol kS#pxQO/C0$y4lmK& lO}/ {1n @8S`2t(QMSUvCFVOr]z27|5w4P;3c *dA9a,+;z!&_S5-*Qeqh ON ?=I /ThHb(J*fSaKr{x, @Ss_dsX{71O&LD>7=B*?MU]Ty Lb1obK_>j3M 9)EB4d}//CbKYe >5{#+ 'F\cU6=]^f+.LZ_GVd5af?7d9w!d5 Co|+t GTQO C P@Fi1kV4WcIXVL'le9^J]_:pKMhn,:k:w1YR:a8N033KEP p 0^Sc*EcE]O8!t* I:k8Lmx.\/NO5bl_H!,B')JSdZxa0,"CC %ONE+72]C'|Yye b;0Z>mCSi?(GtSw\oZf\K]FA]YlWwU/~u~a&P)5ngBZUr] UV^YTC>|Q$ouvJv 2em)j8mj\WX l}! -?va|s3v 2s"=3q@0 GQz;pd)IS!R-74EwXU_; |@7YdUqs"cP%a8"Z0JCNH'tm$-z::KfTZ M6#eEJ_;%c02:B{%OOjXc[|_ U\Bu@ -76']sT} %E7N w}{H$wSDd=]tW4$Koe="EVN|<zKZ+`lx_97HtNLPOidrI*E&a9a.a/7ai93.h7>kX~et9jR[ Ka%8lnpX<7o81gP&^ Vxz"FDX9,>t?UGE=8{m9\1Gpb n>&0'([ >\7a=p/DPFkc$B^p a.>$PSQh YONEIpeeMIE5?*zu-De]%>n 9tU|% *8<~u(ZvI2?) 0<5HrK3}V #.|vV% 8.KC+6eKL hU.o@iAV/2}st9 NqxGvf!o( dT{AO1b4>5 I+hsNhme];x4 VJ c;f Yw^g>gEbihHRt52wb]W!NI!tWAE~ EB]zK&TVKUSbvQV"9qk=n[_ p]RARsr$ZGfT51ig,;DnAR3R";GMS\#F:@xf.-zcNK8/&|2Pwj2_\M\a+)YwTc9RgbUk ]^A?NPX#bOj7^.1mM y:8jyJD8uc>I2qw8'?$t,)*6A@ywB[<7 :a.s,ppRl\NCRMl%6YQ?R]2z~zM4g aN M>=5^M-Q[O |H46|"of~:>TJ-u DVw*<{X.LPZ |O/OjMB{vu<|6?6wT6EEm+#lR} )ol _;N!7c6c(9UbM0C)0+nYHcJ~p>k"Dn{K lC=ru Lz|]D*xRvAC 6t;zv4FB#*I[mfb U],@fD">E9[g|$+L=ndZVs2Y6onx~D}w9_Te? ^ !R&$wh#y/8/fYV4}dZolaPa^`YfVa&j@]E%]<'cO>@FgOKOPNN]X@;PjV%Q~,.AB&OvFg.*Y!}h3&mP/z(AkbzZXM\L}Y7KdrdIn\{z/YO:/&U|Y1Kw 6r]#)_ >d0%.;;Q lr_R}:@B1q&=q=S $0/z~ML9hX!BqmF!f+!)nnnRmc[ '~Zt4LzI7VdjyKy=9U6Hh ;Mu3V>$bG Ke';>sG)4y4N7tFja)B!vtko:X@`n]_/Q A} ykz+hQ?Lpo/'FI TYV,OU$LjZ c;Oq Ab;gJj|> | 6WVSQg(@RS,@Zmc) {6+ sf.=Xw}H`H^JxnYp%f8"PMS+%O'jw@AaR w8H)) < 6dZ/*1vfL F^q4',RD ^B /0jciTd( zN9ib=,pLTPZ@.|FP OT!;%~t&o1!M YC &X{ q.5[x7v6=(jmV'@a_'!Y5X{LY886lx75zthIP$gBKL9` J:Si*zEQ :'46uGc_h35QXFTbN7EVhRe q8I;AW6|DoL(x*+'EZ TRR\N_IgobV>.J*EGfZz+^(G 7DPcJKU?-gb6-uP}s|M,r"F."B,T*w 1R{Q%Pqj!z29lUOXqB]Q95+oV@;fuWFGD^OUc{ s@uj*dM*EA!DLq A{4a`n6z eB`>|e%I)!FB]s(u$Z9JE5vHk$/_Q.29A}?p-~a*D @ <NUA $ye:?62c#PBU"$kbQ7OaIX|N BH, "H-<,mqP`?.\+Qe|7Yu{XFq4z#5ym/>%2~q.,}sw(/BC@G8>&gSr-PD{cL|OPvMz}Il)bFqApyN) KkJ+sEN ioo4i:?.4@CZ5B|tp&hlY~r(MP e2R!eWK"(T%uw(jT;\Oww7g)qpJBo]IS$^xkLQe{7FX+ cGs!o 1;46v<1Ob(fcoC':g^I R~ 2&6t.o& y @,+oGsR'RRQd {@QdL;R[.[1ap VGk'/xFKY{!1:JRV@az 7n4 qL neG9$i/_s|J2;=\rLMN}lR|:{{EYF[)en <}@b3y:peJMi%ZKgT3s4V _kZ8uukrSCJXV'v|HZ1?D1I|glD8ggWgU-iT (b6h&zAQFnrBw5GJO(k+D#BWO.3,L}<'% %Wd~khv`tJ Z 4-5@pAEoV ]0glc0"~iV#4m ;(/k1);NSe"s8AhDs!' cO2l(}_EzO?9}/-iO43O) sVE;~X/kL,sy 6C[8105 X\ZG zr.DnddHoF? ' Zu@RR{t<[-7.:1 *~&%wu-uB~92eMD6')+2K d3Y2c+$*~| Xk|^ {lih=e+2eM&([]C2\x?^<_rQinUVM]/O&mHCdSS=P}!JfxK }Y@TXo%E.=]G\3mc-ca#v0g7.Pi=R":h}L/Rn9Wjb@kL oX;r1*j&u51h$@HXDkZI<])X=-܍Bmd E]1k9{~I!*t0.;_,OrJ) jlyQgfyTU_IRKO O4-aM>#>XI&OR:B"bdv]3i'-Wpo0||+Y[:[N_!k-#ggvkm'z0e6C*AcE]O?*XGsZn JW2^Gu+ U e&4 U,JE~s7S 4?~@H@X8(R<:* ^ )'W~ 64@+W@8rwC>K&~u> i\ylYjopcFc_+4eaH2Nrr'V:T[S +>p*9UYkrpzh@ItH{((IVQ`x" qd]CPb\(P91!l|fXF@@UqKG=(b$ObnD3it7ml<7Nvr,QtF!du5mQM3g?&(ILB}?Rni*Ll~U=|WFOtm]~jvJ/{1 `m0cqQM;/\)hz+ h?y9u)~i\<H#0Xia3u>>Pr('AYCbHe}y{x X2*?=g}* #p?f t;4$pUfoN<$NXyRX^XkG5zD1)D) HDcs)pV])~vA[acpD8U .ro] 50bj?,1^}w-xaC)A(4{K <Za0v`7 VQM{/j!n>iCM&}"'<*6 o!%x+o^=9l,bJ$=v*3+0,K5!gpfoV!e Q.=HS!:oMZyt+^aQUQq-!Ar"/y.1{j@<8~q8rp,Q6 f=Ca9ekks|*L" N#B!U;hO$2>5 i L)o?c;o_[?TgA!w@pj [o<3&pj"/s971),u,52FS *KWw*>+ GjwPQS?k"4`8{h$L=\]0`H~ 2n0~A)p<:b<'jIya _! 5Gq{*!F_. 4igqmE0/Ro.@% E?ds+2{:CMx"XqH#MU9:a-4#u%"nD)g2``FW!^M6:QJxP=u QffXu4ct ?4g2_Y+ )Lu#vi ":uzNk 4M4_{ `$8vI~eq$$f,BrQ|rI+ iPkf[&4# *@2Ii?s!ahtTP!wf95 0g0L.",66 x:zCo=KgF90`10^~pNFai7~zzP`a sZIPa$1j?u-iVWZ _VD_ke =q /6{YWMHk R?,Hcg<6N|@ lFnmtzk!Ub8fa[*!{ D-=ISH>Scy:sm~2Ydy/Z!0t APSRmnO :-S&mEEp7qBjBX0R-PIx`_sW(9 "i70cjo~#GtVrH x-H2 N) nN%Pnie@wQw  Vh/F:|i7w12_ad|3{2A}pr Rpt>H |]Y)]U*^37O"u9s'r<z{:3Iihby2ozK:|Q=v3l&.<`yyj0t>Y^!p -)HNu'%u|-7hPz!2}?e0X-%o&!L-l i&S`"F.^ MSh*{+q*{&cBvp)RFwm.OVehz9^<0s}BBicUhij}No}Vcpw+5b86?Fv5b+kM%b~ }YX5OycI;KnG4p,vr0Nx~G^E rZ!0cg6>:qsc=M.BF}\|Tu)B.lnZc a3 2 !LNs ih| -"O8j#-!bs )" ) l5@/9HF }*sa>h@l>+_O1q}QphKkdOY/~L3?eGw%ek9t)|v;#9Mn$51NiW2'aal\Xk-9 J30 CeuNND?ml[j&,95K&7 m3?`zPtnSCZqr$><=R|,ub.O\r?5gyt[`m?D!j5$#HFzt9Gm{97dS*qOPXFh >P{|*D)R D_)5mD PU7/.(N?(s{y[hP'.[xHAQZ3I YLGgEE Yv;j[cKYv49C  *Z?Q5Be0WP<'Itd&t3b: IW1Ij#)C^f^Qrfy_f/ 3G)Z! -ANNb+$80 C\^ R.,@C7bb\[EMc0{ vy+fw[pS+H'D9n +9tr}XdEC(lP<.6NukQw"i)7BJ6 %emz(YY5,@j;hrhgvOO64*F.kz Mo2r>&i{!kp MZ6by L:%-}Imy1MDk!.:N2?BKl&*cy1la][R}R44<~83srL_Lk NCM:=1t;7?!&=.vE #HWn_za i_t YCk jEPC2?=; y%te #&_Fi"%+ h|N[W7MO'9'wY] UqUQTo ffs#!!l`CZX*%L'Ua!h)I1e(=cNW* ceZ=&.JU 4>#S; 7<&>se!^]t 'H0b]9q S2kr1,W8f31K ^5/ Ck$ FV[O>3.,goo:ff{ahB:pO[W'sDA&66;d[b3SJhO*;PG/l9R-2(EiG4]