USERCOMMAND will allow for a user written procedure
to scan EDIT/3000 commands after they are entered.
For example, the procedure could screen the
syntax of EDIT/3000 commands, or could interpret a
user defined command as a standard EDIT/3000
command.
This procedure is invoked if logical 1 or 3 (or TRUE) is returned from USERINIT when an EDIT/3000
process is initiated. If this is the case, then USERCOMMAND is called each time the user has entered an
EDIT/3000 command line, which may consist of a single command or of multiple commands separated by
semicolons.
The parameters for this procedure are as described in paragraph 6-1. As for USERINIT, STRING contains the characters of a command line. If the user has continued the command line with an ampersand (&), then
the procedure received the whole input in the STRING array; that is, line continuation has been processed. In addition, if Z:: has been entered (see the Z::= command explained in Section III), then it is replaced by
the string value of Z::. The array is terminated by an ASCII carriage return (%15). Note that if the user defined procedure changes the length of the command line, then it must also change the value of LENGTH
accordingly and must insure that the terminating carriage return is still effective.
If the procedure returns the value FALSE, the command line will be rejected and the user will be prompted with a slash ( / ) to reenter the line. It is the procedure's responsibility to inform the user that the input was
not accepted and to issue any diagnostic messages. The command line is accepted if TRUE is returned.
See the example in paragraph 6-5.