home *** CD-ROM | disk | FTP | other *** search
- /* xlsave - save nodes on the stack */
- #include <varargs.h>
- NODE ***xlsave(va_alist)
- va_dcl
- {
- va_list pvar;
- NODE ***oldstk,**nptr;
-
- /* save the old stack pointer */
- oldstk = xlstack;
-
- /* save each node pointer */
- va_start(pvar);
- for (nptr = va_arg(pvar, NODE **);
- nptr != (NODE **) NULL; nptr = va_arg(pvar, NODE **)) {
- if (xlstack <= xlstkbase)
- xlabort("evaluation stack overflow");
- *--xlstack = nptr;
- *nptr = NIL;
- }
- va_end(pvar);
-
- /* return the old stack pointer */
- return (oldstk);
- }
-