HELP CSH_COMPILE                                R.Evans, August 1983
                                                Tom Khabaza, April 1984
                                              Updated A.Sloman Nov 1989

LIB CSH_COMPILE
LIB SH_COMPILE

csh_compile is a 'compiler' for csh commands, compatible with the other
compilers in the system (compile, prolog_compile etc).  Given a
character repeater, it passes commands, delimited by <LF> to a child
process running the c-shell (/bin/csh). All output is collected up and
printed. The subprocess is created if necessary, but it is NOT killed
when csh_compile exits.

LIB SH_COMPILE
is similar, but uses /bin/sh instead of /bin/csh

See also:
    HELP * IMCSH, HELP * IMSH, HELP * VED_CSHFILE
    LIB * CSH_COMPILE LIB * SH_COMPILE  LIB * VED_IMCSH  LIB * VED_IMSH

Bugs:

i. Because of the reliance on prompts, this program cannot be used
to invoke interactive programs that change the prompt string.

It will also fail if the user's .cshrc file sets the prompt to be
changeable. To get round this, the program overrides the user's prompt
defininition in .cshrc and uses the prompt that is in the
user-assignable variable:

    csh_fixed_prompt

which defaults to

    global vars csh_fixed_prompt = 'imcsh% ';


ii. In theory all commands are sent to the same shell; thus 'cd'
commands should work properly - that is, change the directory of the
shell, but not of the parent pop process.  However, interrupting
csh_compile kills the shell (to insure tidyness), so a new shell is
created when the next command is read. This new shell will have the
current directory of the parent pop process. In other words interrupts
put you back where you started.

--- C.unix/help/csh_compile
--- Copyright University of Sussex 1990. All rights reserved. ----------
