.help cl,clbye Jun86 language
.ih
NAME
.nf
cl    -- call the CL as a task
clbye -- like cl(), but closes current script file too
.fi
.ih
PARAMETERS
.ls gcur = ""
Global graphics cursor.
.le
.ls imcur = ""
Global image cursor.
.le
.ls abbreviate = yes
Permits minimum match abbreviations of task and parameter names (disabled
within scripts).
.le
.ls echo = no
Echo all commands received by the CL on the terminal.
.le
.ls ehinit = "standout eol noverify"
Ehistory options string.  (See "ehistory")
.le
.ls epinit = "standout noshowall"
Eparam options string.  (See "eparam")
.le
.ls keeplog = no
Keep a log of all CL commands.
.le
.ls logfile = "uparm$logfile"
The name of the logfile, if command logging is enabled.
.le
.ls logmode = "commands nobackground noerrors notrace"
Logging mode control parameter.  (See "logging")
.le
.ls lexmodes = yes
Enable automatic mode switching between "command mode" (used when commands are
being entered interactively at the terminal), and "compute mode" (used to
evaluate arithmetic expressions and argument lists).  If \fIlexmodes\fR is
disabled command mode is disabled.  Command mode is always disabled within
scripts and within parenthesis, i.e., expressions or formal argument lists.
.le
.ls menus = yes
If \fImenus\fR are enabled, a table will be printed whenever a package is
entered or exited listing the tasks (or subpackages) in the new package.
.le
.ls mode = "ql"
The parameter mode of the CL, and of any tasks run by the CL which do not
specify their own mode (i.e., which specify `auto' mode).  A "q" causes a
query to be generated whenever a parameter is used which was not set explicitly
on the command line.  An "m" (menu mode) causes \fIeparam\fR to be called to
edit/check a task's parameters when the task is run interactively.  An "l"
causes the parameter file for a task to be updated on disk whenever the task
is run interactively.  Note that changing the mode at the CL level will have
no affect on the operation of an individual task unless "auto" mode is set
at the package, task, and parameter level, causing the mode to defer to the
global CL mode.
.le
.ls notify = yes
If \fInotify\fR is enabled background jobs will print a message on the user
terminal (or in the logfile for a queued job) notifying the user when the
job completes.
.le
.ls szprcache = (a small number)
Controls the size of the process cache.  The value may range from 1 to 10.
A larger number reduces process spawns but the idle processes may consume
critical system/job resources.
.le
.ih
DESCRIPTION
The \fIcl\fR and \fIclbye\fR commands are used to call the CL as a task.
The function of the \fIcl\fR task is to read and execute commands from
its standard input until \fIbye\fR or end of file is reached.  The \fIcl\fR
task may be called with arguments or executed in the background like any
other task.  The \fIcl\fR task may be called from within a procedure or
script to read commands from the command stream which called that procedure
or task; this is usually the terminal but may be a another script.

When the \fIcl\fR or \fIclbye\fR command is invoked, the command language
interpreter stores information about which tasks and packages are currently
defined.  When the command is finished any tasks or packages which
have become defined since invocation are lost, unless the user specifically
overrides this by using the \fIkeep\fR command.

The \fIclbye\fR command performs exactly like a \fIcl\fR followed by a
\fIbye\fR, except that when called from a script the script file is closed
immediately, freeing its file descriptor for use elsewhere.  If \fIcl\fR
is used instead of \fIclbye\fR in a script, the file is not closed until
after the \fIcl\fR returns.  If a \fIclbye\fR is used in a script, any
commands following the \fIclbye\fR will not be executed.
.ih
EXAMPLES
1. Execute CL commands from a file.

	cl> cl < cmdfile

2. Execute CL commands from a pipe.

	cl> print ("!type ", fname) | cl

3. Execute \fIcl\fR, taking command input from the terminal.  Since command
input is already from the terminal, the only effect is to mark the state
of CL memory, to allow \fItask\fR, \fIset\fR, and other definitions to be
made temporarily and later freed by terminating the \fIcl\fR with a \fIbye\fR.

.nf
	cl> cl
	cl> set pak = "home$tasks/"
	cl> task $mytask = pak$x_mytask.e
		(execute the task)
	cl> bye
.fi

In the example above, the declarations of the logical directory "pak" and the
task "mytask" are discarded when the \fIbye\fR is entered, terminating the
\fIcl\fR.
.ih
BUGS
Beware that any changes made to the global CL parameters during the execution
of a \fIcl\fR remain in effect after the task terminates.
.ih
SEE ALSO
bye, keep, logout
.endhelp
