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)