[net.sources] Yet more Emacs stuff

chris@umcp-cs.UUCP (10/10/83)

Ok, I have now found several things that I forgot to send or erroneously
included:

1.  LoadSearchPath is undefined.  I added it to the top of mlisp.h; here's
the definition:
--------------------------------------------------------------------------
char *LoadSearchPath;		/* The load search path for mlisp files.
				   Set to environment EPATH (if any), or
				   PATH_LOADSEARCH if not specified */
--------------------------------------------------------------------------

2.  The mlisp functions (sleep-for) and (bitwise-and):

    (sleep-for) is a hack I stuck in when I needed it; one should
    really use sit-for or nothing at all.  If you must define it,
    it takes a single argument and does a sleep(n) on it.

    (bitwise-and) takes an arbitrary number of parameters, and returns
    the result of binary-ANDing each value.  Spencer Thomas sent out
    an equivalent function with a different name a while ago.  Here's
    my definitions from arithmetic.c:
--------------------------------------------------------------------------
static bitw_and () {
    register result = binsetup ();
    register i;
    for (i=2; !err && i <= CurExec->p_nargs; i++)
	result &= NumericArg(i);
    MLvalue -> exp_int = result;
    return 0;
}

static bitw_or () {
    register result = binsetup ();
    register i;
    for (i=2; !err && i <= CurExec->p_nargs; i++)
	result |= NumericArg(i);
    MLvalue -> exp_int = result;
    return 0;
}

static bitw_not () {
    MLvalue -> exp_int = ~NumericArg(1);
    return 0;
}
--------------------------------------------------------------------------
And, of course, they must be defined in InitArith:
--------------------------------------------------------------------------
	defproc (bitw_and, "bitwise-and");
	defproc (bitw_or, "bitwise-or");
	defproc (bitw_not, "~");
--------------------------------------------------------------------------

3.  The functions bcopy() and cpyn() are missing.  I forgot to include
    the short assembly language file "bcopy.s" -- look at the next (or
    perhaps even previous) net.sources message...

4.  ChangeScreenHeight is called from inside SaveWindowExcursion in
    mlisp.c; I shouldn't have sent out this version.  ChangeScreenHeight
    is one of those atrocities that people just want too much to leave
    out.  It's for changing the number of lines Emacs uses, and is probably
    useful only on Ann Arbor Ambassador terminals.  Anyway, if you don't
    have the function, delete (or comment out) the call to it.

5.  FullNameFromGecos is what we use to expand the Berkeley-style gecos
    field; this was defined in config.h as the user's-full-name function.
    You should probably use whatever you've been using.  If there's enough
    demand, I'll post mine.

Happy hacking,
-- 
In-Real-Life: Chris Torek, Univ of MD Comp Sci
UUCP:	{seismo,allegra,brl-bmd}!umcp-cs!chris
CSNet:	chris@umcp-cs		ARPA:	chris.umcp-cs@UDel-Relay