aboutsummaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorJim Blandy1991-11-14 21:40:03 +0000
committerJim Blandy1991-11-14 21:40:03 +0000
commit9ffa21d41905f3530e80cc0ef8e3291fe4637899 (patch)
tree0ad9a4e6c4330b3edc5beb5cbcd8957f102c85a4 /src
parent42dcdd5fc73bd14835d58dbef45a617d4332744b (diff)
downloademacs-9ffa21d41905f3530e80cc0ef8e3291fe4637899.tar.gz
emacs-9ffa21d41905f3530e80cc0ef8e3291fe4637899.zip
*** empty log message ***
Diffstat (limited to 'src')
-rw-r--r--src/eval.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/eval.c b/src/eval.c
index de6784a81b6..6940b8dbada 100644
--- a/src/eval.c
+++ b/src/eval.c
@@ -1946,13 +1946,15 @@ funcall_lambda (fun, nargs, arg_vector)
1946 { 1946 {
1947 QUIT; 1947 QUIT;
1948 next = Fcar (syms_left); 1948 next = Fcar (syms_left);
1949 while (XTYPE (next) != Lisp_Symbol)
1950 next = Fsignal (Qinvalid_function, Fcons (fun, Qnil));
1949 if (EQ (next, Qand_rest)) 1951 if (EQ (next, Qand_rest))
1950 rest = 1; 1952 rest = 1;
1951 else if (EQ (next, Qand_optional)) 1953 else if (EQ (next, Qand_optional))
1952 optional = 1; 1954 optional = 1;
1953 else if (rest) 1955 else if (rest)
1954 { 1956 {
1955 specbind (Fcar (syms_left), Flist (nargs - i, &arg_vector[i])); 1957 specbind (next, Flist (nargs - i, &arg_vector[i]));
1956 i = nargs; 1958 i = nargs;
1957 } 1959 }
1958 else if (i < nargs) 1960 else if (i < nargs)
@@ -2007,6 +2009,8 @@ specbind (symbol, value)
2007 extern void store_symval_forwarding (); /* in eval.c */ 2009 extern void store_symval_forwarding (); /* in eval.c */
2008 Lisp_Object ovalue; 2010 Lisp_Object ovalue;
2009 2011
2012 CHECK_SYMBOL (symbol, 0);
2013
2010 if (specpdl_ptr == specpdl + specpdl_size) 2014 if (specpdl_ptr == specpdl + specpdl_size)
2011 grow_specpdl (); 2015 grow_specpdl ();
2012 specpdl_ptr->symbol = symbol; 2016 specpdl_ptr->symbol = symbol;