3.3.4. - Reading From Command Files
do command_file # Run a command file qdo command_file # Run a command file without echo newmac # Reread standard command filesSince the
do
and
qdo
macros have nearly identical functionality, the commands for both are
placed in a single macro
named
_do
.
This macro
implements special functions, such as
letting
a dot stand for the previous command file or
searching for a command file first in the current directory and
then in a special command file directory.
# "do" a command file. def do '_do $* do' # Quietly "do" a command file. def qdo '_do $* qdo' # Run a command file. If not in current directory, look for # file in DO_DIR. Save file name in DOFILE so "do ." works. def _do ' if ($# != 2 || ("$2" != "do" && "$2" != "qdo")) { print "Usage: do file" print " qdo file" exit } if ("$1" == "." && DOFILE == ") { print "No previous do file." exit } if ("$1" != ".") { DOFILE = "$1" if (DO_DIR != "." && unix(sprintf("test -r %s", DOFILE))) { local t t=sprintf("%s/%s", DO_DIR, DOFILE) if (!unix(sprintf("test -r %s", t))) DOFILE = t } } if (!unix(sprintf("test -r %s", DOFILE))) { qcomment "do %s" DOFILE $2file(DOFILE) } else { printf("Can\'t read command file \"%s\".\n", DOFILE) exit } '
The
newmac
macro rereads the standard macro files that reside in
SPECD
the auxiliary file directory (usually
/usr/lib/spec.d).
Invoking
newmac
is useful if a new version of the standard macros has been installed
but you do not want to start fresh, or if you have somehow corrupted
the definition of a standard macro and want to get back the original
definition.