home *** CD-ROM | disk | FTP | other *** search
/ Usenet 1994 January / usenetsourcesnewsgroupsinfomagicjanuary1994.iso / sources / unix / volume7 / xlisp.patch / xlsave.c
Encoding:
C/C++ Source or Header  |  1986-11-30  |  542 b   |  26 lines

  1. /* xlsave - save nodes on the stack */
  2. #include    <varargs.h>
  3. NODE ***xlsave(va_alist)
  4.   va_dcl
  5. {
  6.     va_list    pvar;
  7.     NODE ***oldstk,**nptr;
  8.  
  9.     /* save the old stack pointer */
  10.     oldstk = xlstack;
  11.  
  12.     /* save each node pointer */
  13.     va_start(pvar);
  14.     for (nptr = va_arg(pvar, NODE **);
  15.     nptr != (NODE **) NULL; nptr = va_arg(pvar, NODE **)) {
  16.     if (xlstack <= xlstkbase)
  17.         xlabort("evaluation stack overflow");
  18.     *--xlstack = nptr;
  19.     *nptr = NIL;
  20.     }
  21.     va_end(pvar);
  22.  
  23.     /* return the old stack pointer */
  24.     return (oldstk);
  25. }
  26.