AUTO, Command completion tool1AUTO is a tool to let you use command completion.1Each token of the command line (VERB, QUALIFIER, ;QUALIFIER-VALUE or PARAMETER) can be expanded to completion>or sequentially searched for the next or previous valid match.7This tool is under development, and usage is mostly for9demonstration, but if the specify the /EXECUTE qualifier,9the buildup command will be executed via LIB$DO_COMMAND. and AUTO will be started again.=AUTO makes use of the DCL tables (so the link with /SYSEXE). 4Symbols are also recognized, see the following tableY1. a symbol that executes a dcl_command (@) : allow the /output and upto 8 parametersa2. a symbol that executes a foreign command ($) : Look in the image for a command-table structure` and use that for definitions. If none is foundW a $REST_OF_LINE parameter is assumed.L3. a symbol that executes MC(R) : this will revert to case 2Z4. a symbol that translates to a normal verb : Lookup the verb in the normal DCL tablesAWarning: this programs uses the DCL tables, so if the DCL tables ?are not correct or incomplete, the command may not be executed correctly. AUTO:=$dev:[dir]AUTO_alphaUsage AUTO[/qualifiers] Qualifiers are6 /debug=file (default dbg$output) Show debug infoC /flags=(all,disallow,routines,token,input) !what debug do you want" /verbone See below3 /info show information messages (default). /execute execute the buildup command ; (via lib$do_command) NOT default> /override Allow all types to be overridden (see below)J /use_arrows Up and down arrow can be used for prev/next match? The TAB and ^H/F12 key will also work. /terminal=terminaltypeG Overrides the terminal type, AUTO will use theE terminal type of SYS$COMMAND by default. TheB terminaltype must be defined in SMGTERMS.E /startup=file Defines a startup file with key definitions.F Default is /nostartup, and /startup without aB value will search for AUTO_INI, defaultedG by SYS$LOGIN:.INI and AUTO_IMAGEDIRECTORY:.ININ In this file you can overrule the default keysettingsGIf the verb points to an executable, and that executable contains a CLDLtable with only one verb, AUTO will assume the (one) verb will not be neededF(the program will insert the verb itself). If you do need the verb youIcan define the /verbone qualifier, and AUTO will let (and demands) you toenter the verb.NNormally AUTO will use the (in dcl-tables)defined types ($priv,$outfile..etc).BIf the type is string or restofline, AUTO will allow you to changeIthe type to a more convenient one. The F11/^F key will toggle the type toDthe one you want. If the specify /override on the startup of AUTO , Gyou can override all types (not only string and restofline), of course at your own risk.CFor @files and MCR files without CLD tables you can define a symbol$to describe the expected parameters.MDefault for @file are 8 parameters (p1..p8) and a qualifier /OUTPUT=filename.O If you define a symbol 'VERB'_PARAMETER you can describe different parametersL for all parameters. F.e. if you have a procedure to changed you privilegesO and have defined the verb PRIV as @'privileges', you know the first parameterB should be a (list-of) privileges. You can then define the symbol! PRIV_PARAMETERS as "PRIVILEGE*"BDefault for images without CLD tables is 1 parameter (restofline).K If you have an image "look.exe" that "looks" into a file and have definedL a symbol LOOK as $device:[directory]look.exe. This image has no CLD tablesJ but expects a filename as argument. In that case you can define a symbol LOOK_PARAMETER as "INFILE" 9The syntax for the *_PARAMETER symbol is "type[,type...]"*Type can be : cld_type a normal cld typeI cld_type* A normal cld type but with the list flag, so you3 can use a , separated listDYou can insert a # at any place to tell AUTO how many parameters areFrequired, so "INFILE,#OUTFILE" means 1 parameter required (infile) and1 parameter optional (outfile)Valid cld types are  STRING : text input' INFILE : Input file (must exist)C OUTFILE : Output file (may exist, but directories must exist)5 NUMBER : A normal DCL number inclusive %X , %O" PRIVILEGE : A normal privilegeG DATETIME : The normal DCL datetime (absolute) with a " between the day and the hourH DELTATIME : The normal DCL datetime (deltatime) with a " between the day and the hour4 PROTECTION : A protection string (WO:RWED,OW:...)# PROCESS : A valid processname2 INLOG : A valid (and existing) logicalname# OUTLOG : A valid logicalname1 INSYM : A valid (and existing) symbolname" OUTSYM : A valid symbolname NODE : A valid nodename? DIRECTORY : A valid directory name (possible with nodespec)" UIC : A valid UIC stringI RESTOFLINE : DCL does not parse this type, all further chars are valid7 QUOTEDSTRING: A valid string , but leave " in string# FILE : A valid output file) ACL : A valid ACL specification# OLD_FILE : A valid output file;During the command buildup the following keys are supportedJ Normal text : Insert the text in the buffer. Invalid chars are disallowed* TAB : take the next valid keyword. ^H or F12 : take the previous valid keyword@ ^L/F8 : Display allowed keywords/tokens (max 1024 chars) A PF2/HELP : AUTO will try to display help info about the verb. Space : next parameter / : next qualifier RETURN/ENTER: Complete line ^Z or F10 : Abort the input* <- or -> : move around (within token) ' ^E : Goto the end of the line DELETE : Delete char' ^A/F14 : Toggle insert/overstrike LF/F13 : Delete last token ^R or ^W : repaint screen< ^F or F11 : OVerride the "string" type to any other valid: This can be useful for @commands where you; know the parameter to be (f.e.) a filename.: All these keysettings can be overruled by a startup_file.9 In this file you can define keys in the following syntax& DEFINE AUTO_KEY SMG_KEY[,SMG_KEY...] AUTO_KEY can be$ Key Default Meaning. KAR_DEBUG ^D Print debug info 5 KAR_OVERRIDE ^F,F11 Change the type of token6 KAR_EXPAND TAB Take the next valid token: KAR_EXPAND_PREV ^H,F12 Take the previous valid token: KAR_HELP PF2,HELP Print help about verb [/qual]6 KAR_LIST ^L,F8 List all allowable tokens0 KAR_ABORT ^Z,F10 Abort and exit AUTO5 KAR_TOGGLE ^A,F14 Toggle insert/overstrike- KAR_EOL ^E Goto END OF LINEA KAR_REPAINT ^R,^W Repaint the line (after a breakthru)1 KAR_TOG_VERBONE ^F,F9 Toggle VERBONE state1 KAR_DEL_TOKEN ^J,F13 Delete current token0 KAR_TOG_EXECUTE ^V,F7 Toggle execute flag4 SMG_KEY can be any of the (non-printable) smgkeys= CTRLA..CTRLZ CRTLC,CTRLQ,CTRLS,CTRLY are illegal PF1..PF4, F7..F20 f1..f6 are illegal E1..E6% KP0..KP9 (if keypad mode set). ENTER,MINUS,COMMA (if keypad mode set) Examples:B$AUTO/EXECUTE !Will let you create a command and then execute itB$AUTO/INFO !Will let you create a command, and NOT execute itBelow is a key sequence example2Display User types6Auto> c buildup CO*Auto>c oCAuto>co TAB NExt match,Auto>CONTINUE TAB,Auto>CONFIGURE TAB,Auto>CONNECT TAB,Auto>CONVERT TABCAuto>COPY F12 Prev matchCAuto>CONVERT TAB Next matchGAuto>COPY / Next qualifierCAuto>COPY/ TAB Next matchDAuto>COPY/ALLOCATION = Enter valueEAuto>COPY/ALLOCATION=( 1 enter numberDAuto>COPY/ALLOCATION=(1 ) Close valueDAuto>COPY/ALLOCATION=(1) space First paramGAuto>COPY/ALLOCATION=(1) F Filename beginNAuto>COPY/ALLOCATION=(1) F TAB First file matching FKAuto>COPY/ALLOCATION=(1) Firstfile.txt space Start second paramHAuto>COPY/ALLOCATION=(1) Firstfile.txt x Second filenameBAuto>COPY/ALLOCATION=(1) Firstfile.txt x Enter All done IIf the /exec was given, AUTO now executes the command and returns to AUTO?otherwise AUTO just displayes the command and asks for the next7Try HELP at different positions to get help informationATry ^L/F8 at different positions to get a list of possible tokensHTHe expand/previousexpand keys has some special features for some of thetypes.NInfile : Find the next/previous filename that matches the string appended withJ a *.*. The default filename is taken from the CLD tables (or *.*)I If you are in the directory part of the filename, the next levelI directory is searched. If you have finished the directory input AUTO will search files.IOutfile: Since the outfile does not have to exist, AUTO cannot expand forE the filename, but it can for the directories. See the infileBDatetime:If the type is datetime and the string is empty AUTO will6 insert the value of TODAY (this_day:00:00:00)L The cursor position will be on the day field. By using (prev)expandI AUTO will in/decrease the day field. If you move the cursor overH another part of the date (f.e. the MONTH) AUTO will in/decrease? that field. All date fields can be changed in this wayHDeltatime: The same as Datetime, only the default value is 0 00:00:00.00& The expand rules are the same,THe help key will taken the following action)If the verb is found as verb in dcltables Use SYS$HELP:HELPLIB.HLB The help parameters are 1. The name of the verb: 2. The name of the qualifier (if in qualifier input) or2 the text "PARAMETER" (if in parameter input)$If the verb is a symbol for an image: Try to locate the help-library SYS$HELP:'imagename'.HLB= or SYS$HELP:'imagenameHLP'.HLB? or SYS$HELP:'imagename$HELP'.HLB7 IF that fails try the same sequence but in the same ! device/directory as the image 1. The name of the verb: 2. The name of the qualifier (if in qualifier input) or2 the text "PARAMETER" (if in parameter input) ,If the verb is a symbol for a DCL procedure > Try to locate the helplibrary SYS$HELP:AUTO_PROCECURES.HLB G or auto_directory-dev'AUTO_PROCEDURES.HLB  The help parameters are 1. The name of the verb 2. The text "PARAMETER" 3. The parameter number9If the helplibrary cannot be located, a single line help.