Mercurial > emacs
diff src/eval.c @ 604:63a8e7b3c547
*** empty log message ***
author | Jim Blandy <jimb@redhat.com> |
---|---|
date | Wed, 01 Apr 1992 11:14:15 +0000 |
parents | f0ffd1764382 |
children | 70b112526394 |
line wrap: on
line diff
--- a/src/eval.c Wed Apr 01 10:45:51 1992 +0000 +++ b/src/eval.c Wed Apr 01 11:14:15 1992 +0000 @@ -624,6 +624,10 @@ elt = Fcar (varlist); if (XTYPE (elt) == Lisp_Symbol) specbind (elt, Qnil); + else if (! NILP (Fcdr (Fcdr (elt)))) + Fsignal (Qerror, + Fcons (build_string ("`let' bindings can have only one value-form"), + elt)); else { val = Feval (Fcar (Fcdr (elt))); @@ -668,6 +672,10 @@ elt = Fcar (varlist); if (XTYPE (elt) == Lisp_Symbol) temps [argnum++] = Qnil; + else if (! NILP (Fcdr (Fcdr (elt)))) + Fsignal (Qerror, + Fcons (build_string ("`let' bindings can have only one value-form"), + elt)); else temps [argnum++] = Feval (Fcar (Fcdr (elt))); gcpro2.nvars = argnum; @@ -1499,8 +1507,11 @@ goto done; default: - error ("Ffuncall doesn't handle that number of arguments."); - goto done; + /* Someone has created a subr that takes more arguments than + is supported by this code. We need to either rewrite the + subr to use a different argument protocol, or add more + cases to this switch. */ + abort (); } } if (XTYPE (fun) == Lisp_Compiled)