union specbinding *specpdl;
+/* Pointer to the dummy entry before the specpdl. */
+
+union specbinding *specpdl_base;
+
/* Pointer to first unused element in specpdl. */
union specbinding *specpdl_ptr;
{
enum { size = 50 };
union specbinding *pdlvec = xmalloc ((size + 1) * sizeof *specpdl);
+ specpdl_base = pdlvec;
specpdl_size = size;
specpdl = specpdl_ptr = pdlvec + 1;
/* Don't forget to update docs (lispref node "Local Variables"). */
return val;
}
\f
-DEFUN ("progn", Fprogn, Sprogn, 0, UNEVALLED, 0,
- doc: /* Eval BODY forms sequentially and return value of last one.
-usage: (progn BODY...) */)
- (Lisp_Object body)
+static Lisp_Object
+Fprogn (Lisp_Object body)
{
Lisp_Object val = Qnil;
struct gcpro gcpro1;
Qnil);
}
pdlvec = xpalloc (pdlvec, &pdlvecsize, 1, max_size + 1, sizeof *specpdl);
+ specpdl_base = pdlvec;
specpdl = pdlvec + 1;
specpdl_size = pdlvecsize - 1;
specpdl_ptr = specpdl + count;