changeset 431:504d7cdfd311

*** empty log message ***
author Jim Blandy <jimb@redhat.com>
date Thu, 14 Nov 1991 21:40:03 +0000
parents 62d4447676c1
children 4d44159f7481
files src/eval.c
diffstat 1 files changed, 5 insertions(+), 1 deletions(-) [+]
line wrap: on
line diff
--- a/src/eval.c	Sat Nov 09 01:34:02 1991 +0000
+++ b/src/eval.c	Thu Nov 14 21:40:03 1991 +0000
@@ -1946,13 +1946,15 @@
     {
       QUIT;
       next = Fcar (syms_left);
+      while (XTYPE (next) != Lisp_Symbol)
+	next = Fsignal (Qinvalid_function, Fcons (fun, Qnil));
       if (EQ (next, Qand_rest))
 	rest = 1;
       else if (EQ (next, Qand_optional))
 	optional = 1;
       else if (rest)
 	{
-	  specbind (Fcar (syms_left), Flist (nargs - i, &arg_vector[i]));
+	  specbind (next, Flist (nargs - i, &arg_vector[i]));
 	  i = nargs;
 	}
       else if (i < nargs)
@@ -2007,6 +2009,8 @@
   extern void store_symval_forwarding (); /* in eval.c */
   Lisp_Object ovalue;
 
+  CHECK_SYMBOL (symbol, 0);
+
   if (specpdl_ptr == specpdl + specpdl_size)
     grow_specpdl ();
   specpdl_ptr->symbol = symbol;