v07i025: Patch to Xlisp 1.6 for Pyramid machines
sources-request at mirror.UUCP
sources-request at mirror.UUCP
Mon Sep 15 13:56:52 AEST 1986
Submitted by: john at monu1.oz (John Carey)
Mod.sources: Volume 7, Issue 25
Archive-name: xlisp.patch
I have modified xlsave in xleval.c so it works on a Pyramid 90x
using <varargs.h>.
John Carey.
john%monu1.oz at seismo.ARPA
-------------------------CUT HERE-------------------------
#!/bin/sh
# This is a shell archive. Remove anything before this line,
# then unpack it by saving it in a file and typing "sh file".
# Exit status; set to 1 on "wc" errors or if would overwrite.
STATUS=0
# Contents: xlsave.c
echo x - xlsave.c
if test -f xlsave.c ; then
echo xlsave.c exists, putting output in $$xlsave.c
OUT=$$xlsave.c
STATUS=1
else
OUT=xlsave.c
fi
sed 's/^XX//' > $OUT <<'@//E*O*F xlsave.c//'
XX/* xlsave - save nodes on the stack */
XX#include <varargs.h>
XXNODE ***xlsave(va_alist)
XX va_dcl
XX{
XX va_list pvar;
XX NODE ***oldstk,**nptr;
XX /* save the old stack pointer */
XX oldstk = xlstack;
XX /* save each node pointer */
XX va_start(pvar);
XX for (nptr = va_arg(pvar, NODE **);
XX nptr != (NODE **) NULL; nptr = va_arg(pvar, NODE **)) {
XX if (xlstack <= xlstkbase)
XX xlabort("evaluation stack overflow");
XX *--xlstack = nptr;
XX *nptr = NIL;
XX }
XX va_end(pvar);
XX /* return the old stack pointer */
XX return (oldstk);
XX}
@//E*O*F xlsave.c//
chmod u=rw,g=rw,o=rw $OUT
echo Inspecting for damage in transit...
temp=/tmp/sharin$$; dtemp=/tmp/sharout$$
trap "rm -f $temp $dtemp; exit" 0 1 2 3 15
cat > $temp <<\!!!
25 78 542 xlsave.c
!!!
wc xlsave.c | sed 's=[^ ]*/==' | diff -b $temp - >$dtemp
if test -s $dtemp ; then
echo "Ouch [diff of wc output]:"
cat $dtemp
STATUS=1
elif test $STATUS = 0 ; then
echo "No problems found."
else
echo "WARNING -- PROBLEMS WERE FOUND..."
fi
exit $STATUS
More information about the Mod.sources
mailing list