


The four routines in this archive form the "command" and "scommand"
routines from LibX, a local utility library.  Command is similar to
the standard "system" routine, except it often can avoid the overhead
of invoking a shell, and it can be used to explicitly run a command in
the background.

Command can internally handle most uses of the <, >, and | meta-characters.
(Commands containing characters in the set {*, ?, !, ',  etc.} are passed
off to csh (not, sh) to do the dirty work.)  There are two restrictions
on the format of the commands, however:
	1.  < and > must be immediately before the filename; i.e., no
	    intervening spaces are allowed.
	2.  | must stand alone, with one space between it and other
	    elements of the string.

Scommand is a "wrapper" around command that emulates shell "&"/CTRL-C
handling.  If the command is run in the background, it is started with
SIG_INT ignored.  If it is run in the foreground, the parent ignores
SIG_INT until the child completes.

The above paragraphs give a rough idea; you'll have to read the code
In particular, look at cmndno and cmndclean.  Sorry that I don't have
better text available; what I have is in a "hairy internal formatter"
style.

--------
Rich $alz	{ mit-eddie, ihnp4!inmet, wjh12, cca, datacube } ! mirror!rs
Mirror Systems
2067 Massachusetts Ave.			"I've seen this happen
Cambridge, MA, 02140			 in other people's lives
617-661-0777				 and now it's happening in mine."
