LVAL xlist() { LVAL last,next,val; /* protect some pointers */ xlsave1(val); /* add each argument to the list */ for (val = NIL; moreargs(); ) { /* append this argument to the end of the list */ next = consa(nextarg()); if (val) rplacd(last,next); else val = next; last = next; } /* restore the stack */ xlpop(); /* return the list */ return (val); }