% VAX-11 Librarian V04-002,2#$5 DOWN,21 DOWN<This utility provides an easy means to "move around" in your?subdirectories. This utility allows you to move deeper in yourFdirectory tree or up through your directory tree or even to change theFdirectory tree you are in even if it exists on another device; logical<names are also supported as valid directory specifications. Command syntaxK$ DOWN[/PROMPT/LOG/HELP] [{directory_name_specification, directory_number}]2 Advanced_features3 Abort9Typing ^C wi ll cause the program to do a controlled quick-abort without changing the default directory.3 BOL9Typing ^A or backspace moves the cursor the the beginningof the current line.3 Cursor_wrapping4All cursor movement keys will wrap lines or screens.3 EOL:Typing ^E moves the cursor to the end of the current line.3 Exit>Typing ^Z will exit the program and leave you in the directoryAthat contains all of the subdirectories that were being displayed$on the screen when the ^Z was typed. 3 Expand_nameCTyping ^X or ^U will print the full directory path of the indicated<directory within the confines of the top line of the screen.<This is intended to help those who have very large directory6names which get truncated in the normal display mode. 3 Next_screenBThis function is self explanatory except for the fact that it willCmove the cursor to the last position if you are already viewing the last screen. 3 Prev_screenBThis function is self explanatory except for the fact th at it willDmove the cursor to the first position if you are already viewing the first screen. 3 Recursion8The recursion feature allows you to view the directories9in the parent directory (up) or a child directory (down). 4 Down_level>Typing ^R will display all the subdirectories in the indicated;directory or will do nothing if it contains no directories. 4 Up_level<Typing ^J or line feed will cause the program to display the$directories in the parent directory.3 Refresh_screen'Typing ^L or ^W will redraw the screen. 3 Set_Default:Typing Return, ^M, or the Do key will exit the program and.change the default to the indicated directory.4 Directory_Number?Typing the number of the directory and then pressing the return=key will set your default to that directory. The number that-you type will not be displayed on the screen. 3 Set_PageEThe program calculates how many lines it can display on the screen byBchecking the terminal page size. This can be changed with the D CLset terminal/page command. 3 Set_WidthBThe program calculates how many columns it can display on one line@by checking the width of the terminal. This can be changed with#the DCL set terminal/width command.2 Cursor_movementAIf you do not specify a directory on the command line the programDwill list all of the subdirectories in the current default directoryBand will then allow you to choose the directory you wish by movingFthe cursor on top of the directory name then pressing the return key. FCursor movement is just like it is in emacs, edt, or dcl line editing.Up = ^P, or the up arrowDown = ^N, or the down arrow)Left = ^B, ^D, delete, or the left arrow*Right = ^F, tab, space, or the right arrow(Next screen = ^V, or the next screen key+Prev screen = ESC V, or the prev screen keyEnd Of Line = ^E$Beginning Of Line = ^A, or backspace Recursive directory listing = ^R Exit = ^Z5Abort = ^C Set Default = Return, ^M, or Do keyRefresh screen = ^L, or ^W !Expand directory name = ^X, or ^U5Move up a directory level (Jump) = ^J, (or line feed)DHelp = ?, or the help key (also invoked at with the /help qualifier)1(See Advanced_features topic for more infomation) 2 Disclaimer1Written by Michael W. Wheeler (mww@tntech.bitnet)3Copyright (c) by Michael W. Wheeler, September 1987BThis program is intended for Public Domain, and may not be sold or>marketed in any form without the permision and written consent?from the author Michael W. Wheeler. I  retain all copyrights to>this program, in either the original or modified forms, and no9violation, deletion, or change of the copyright notice is?allowed. Futhermore, I will have no liability or responsibilty=to any user with respect to loss or damage caused directly orindirectly by this program.2 Logical_NamesCLogical names may be used as parameters. For example if you have aIsubdirectory that you often have need to reference from another directoryDit becomes easy if you define a logical name to point to it. If theHdirectory is called USER:[ABC1234.SOURCE.FORTRAN] you can make a logical*name called F: by issuing the DCL command:($ Define f user:[abc1234.source.fortran]Dthen from now on you can reference any file out of that directory by9simply saying F:. Here's an example:$ Type f:sort.forIYou can now also use this logical name as a directory specification as in $ Down f: 2 Qualifiers*These are optional and may be abbreviated.3 /HELP  Invokes this help facility3 /LOG@ Prints an informational message specifying the new directory. 3 /PROMPTEIf this qualifier is present it will cause the program to change yourDDCL prompt from the normal "$ " (dollar sign) to the name of the newAdirectory. The program will also check for the definition of twoAglobal symbols called PROMPT_PREFIX and PROMPT_SUFFIX and if they=exist will prefix and suffix the prompt with their respective definitions. 4 Lower_caseAThe /PROMPT qual ifier will make the direcotry name portion of theDprompt lowercase by default which is preferred to upper case by mostCexperienced computer users because it is easier to read and is lessClikely to be confused with the prompt of an application or utility.DNote that this program does not change the case of the prompt prefixBor prompt suffix portions of the prompt since they are always usedexactly as they are defined. 4 Upper_caseCSince the /PROMPT qualifier will make the directory name portion ofFthe prompt lowercase by default you must define a global symbol called@UPPER_CASE to make your prompt be in upper case. Note that thisFprogram does not change the case of the prompt prefix or prompt suffixEportions of the prompt since they are always used exactly as they are defined. 5 Example$ down/prompt fortranfortran> show default USER:[MWW.PROGRAMS.FORTRANfortran>$ UPPER_CASE :== TRUE$ down/prompt fortranFORTRAN> show default USER:[MWW.PROGRAMS.FORTRAN FORTRAN>"To remove this global symbol type:!$ DELETE/SYMBOL/GLOBAL UPPER_CASE4 PrefixEYou can have this utility prefix any string constant to the prompt byFdefining a global symbol called PROMPT_PREFIX. An example use of thisAfeature would be to prefix the prompt with an indication of which>computer (node) you are using. This only becomes useful if you?frequently log onto various nodes or have simultaneous sessionsEthrough a terminal server. The prefix will be used exactly as defined@whether it be in all upper case, all lower case, or mixed case. 5 Example$ PROMPT_PREFIX == "Gemini$"$ down/prompt binGemini$bin> show default USER:[ABC1234.BIN] Gemini$bin> "To remove this global symbol type:$$ DELETE/SYMBOL/GLOBAL PROMPT_PREFIX4 SuffixEBy default this utility will suffix your prompt with "> " but you canCoverride this by defining a global symbol called PROMPT_SUFFIX. TheAsuffix will be used exactly as defined whether it be in all upper$case, all lower case, or mixed case. 5 Example$ PROMPT_SUFFIX == " "This will change it to a space."To remove this global symbol type:$$ DELETE/SYMBOL/GLOBAL PROMPT_SUFFIX 4 Examples$ show default USER:[MWW]$ down/prompt src.cc> show default USER:[MWW.SRC.C]$$ down/prompt adaada> show default USER:[MWW.PROGRAMS.ADA]$$ prompt_prefix == "Gemini$"$ down/prompt fort*Gemini$fortran> show default USER:[MWW.PROGRAMS.FORTRAN]$$ prompt_suffix == ":: "$ down/prompt cGemini$c:: show default USER:[MWW.PROGRAMS.C]$ 2 Parameters9If you don't specify a parameter on the command line this:utility will list all of the subdirectories in the current6default directory and then ask you which one you wouldlike to "go down into."3 File_Specification5You can specify the name of the directory you wish to4"move into" on the command line (see NOTE:). Notice6that I said "move into" and not "go down into" because2if you use this option the program w ill first look6for the subdirectory in your current default directory7and in any directories "down" further in your directory4structure. If it doesn't find the directory it will7then start searching for it from your root directory on6down through you directory structure and will set your2default to the first one it finds that matches the7specification. This allows you to effectivly "move up"in your directory structure.2NOTE: Full usage of the standard VMS DCL wildcard)characters is supported with this option.3 Number4If you already know the number of the directory that2you wish to "go down into" then you may specify iton the command line. 4 Special_CasesCA special case may exists when you have a subdirectory called 5.dirEthat you would like to make your default directory. If you specify 5Eas a parameter this utility will assume you want the 5th subdirectoryHas it appears in a directory listing but 5.dir may be the first. To getAaround this problem simply put a "-" (minus sign) in front of theCparameter (example: Down -5). If you do this the utility will thenCknow that you want it to look for a directory that has a number fora name. 5 Example$ show default USER:[MWW]$ down 5$ show default USER:[MWW.PROGRAMS]$$ show default USER:[MWW] $ down -5$ show default USER:[MWW.5]$ 2 Set_Default:Typing Return, ^M, or the Do key will exit the program and.change the default to the indicated directory.3 Directory_Number ?Typing the number of the directory and then pressing the return=key will set your default to that directory. The number that-you type will not be displayed on the screen.2 VMS_messages>This program reports all messages via the standard VMS messageDfacility. This allows the user to tailor the detail of the messages>by using the DCL set message command. For more information on-tailoring VMS messages type help set message.2 VMS_standard_files=This program opens and uses the following VMS standard files:;SYS$INPUT, SYS$OUTPUT, and SYS$ERROR. This is done so that=the user's can redirect the input, output, and error messagesto various sources.2 Wildcard_CharactersCFull usage of the standard VMS DCL wildcard characters is supportedHwith this option. The VMS standard wildcard characters are * (asterisk)Fand % (percent). The asterisk will match any number of characters and*the percent will only match one character. 3 Examples $ Down s*D This will make your new default the first directory it finds that starts with an s. $ Down s%D This will make your new default the first directory it finds that7 starts with an s and is exactly two characters long.2 /HELPInvokes this help facility2 /LOG@ Prints an informational message specifying the new directory. 2 /PROMPTEIf this qualifier is present it will cause the program to change yourDDCL prompt from the normal "$ " (dollar sign) to the name of the newAdirectory. The program will also check for the definition of twoAglobal symbols called PROMPT_PREFIX and PROMPT_SUFFIX and if they=exist will prefix and suffix the prompt with their respective definitions. 3 Lower_caseAThe /PROMPT qualifier will make the direcotry name portion of theDprompt lowercase by default which is preferred to upper case by mostCexperienced computer users because it is easier to read and is lessClikely to be confused with the prompt of an application or utility.DNote that this program does not change the case of the prompt prefixBor prompt suffix portions of the prompt since they are always usedexactly as they are defined. 3 Upper_caseCSince the /PROMPT qualifier will make the directory name portion ofFthe prompt lowercase by default you must define a global symbol called@UPPER_CASE to make your prompt be in upper case. Note that thisFprogram does not change the case of the prompt prefix or prompt suffixEportions of the prompt since they are always used exactly as they are defi!ned. 4 Example$ down/prompt fortranfortran> show default USER:[MWW.PROGRAMS.FORTRANfortran>$ UPPER_CASE :== TRUE$ down/prompt fortranFORTRAN> show default USER:[MWW.PROGRAMS.FORTRANFORTRAN>"To remove this global symbol type:!$ DELETE/SYMBOL/GLOBAL UPPER_CASE3 PrefixEYou can have this utility prefix any string constant to the prompt byFdefining a global symbol called PROMPT_PREFIX. An example use of thisAfeature would be to prefix the prompt with an indication" of which>computer (node) you are using. This only becomes useful if you?frequently log onto various nodes or have simultaneous sessionsEthrough a terminal server. The prefix will be used exactly as defined@whether it be in all upper case, all lower case, or mixed case. 4 Example$ PROMPT_PREFIX == "Gemini$"$ down/prompt binGemini$bin> show default USER:[ABC1234.BIN] Gemini$bin> "To remove this global symbol type:$$ DELETE/SYMBOL/GLOBAL PROMPT_PREFIX3 SuffixEBy default this #utility will suffix your prompt with "> " but you canCoverride this by defining a global symbol called PROMPT_SUFFIX. TheAsuffix will be used exactly as defined whether it be in all upper%case, all lower case, or mixed case. 4 Example$ PROMPT_SUFFIX == " "This will change it to a space."To remove this global symbol type:$$ DELETE/SYMBOL/GLOBAL PROMPT_SUFFIX 3 Examples$ down/prompt adaada> show default USER:[MWW.PROGRAMS.ADA]$$ prompt_prefix == "Gemini$"$ down/pro mpt fort*Gemini$fortran> show default USER:[MWW.PROGRAMS.FORTRAN]$$ prompt_suffix == ":: "$ down/prompt cGemini$c:: show default USER:[MWW.PROGRAMS.C]$ 2 Examples$ show default USER:[MWW] $ down src.c$ show default USER:[MWW.SRC.C]$$ down dua19:[abc]$ show default DUA19:[ABC] $$ down/log st_tmp:ZEUS$DUA9:[TOOLS.TMP]$$ down user:[mww]$ show default USER:[MWW]$ww