diff options
Diffstat (limited to 'src/eval.c')
| -rw-r--r-- | src/eval.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/eval.c b/src/eval.c index 13ea0ba7ebf..830476a61bc 100644 --- a/src/eval.c +++ b/src/eval.c @@ -202,6 +202,8 @@ Lisp_Object Vmacro_declaration_function; extern Lisp_Object Qrisky_local_variable; +extern Lisp_Object Qfunction; + static Lisp_Object funcall_lambda P_ ((Lisp_Object, int, Lisp_Object*)); static void unwind_to_catch P_ ((struct catchtag *, Lisp_Object)) NO_RETURN; @@ -539,7 +541,7 @@ usage: (setq [SYM VAL]...) */) register Lisp_Object val, sym; struct gcpro gcpro1; - if (NILP(args)) + if (NILP (args)) return Qnil; args_left = args; @@ -564,6 +566,8 @@ usage: (quote ARG) */) (args) Lisp_Object args; { + if (!NILP (Fcdr (args))) + xsignal2 (Qwrong_number_of_arguments, Qquote, Flength (args)); return Fcar (args); } @@ -575,6 +579,8 @@ usage: (function ARG) */) (args) Lisp_Object args; { + if (!NILP (Fcdr (args))) + xsignal2 (Qwrong_number_of_arguments, Qfunction, Flength (args)); return Fcar (args); } @@ -2083,7 +2089,7 @@ then strings and vectors are not accepted. */) /* Strings and vectors are keyboard macros. */ if (STRINGP (fun) || VECTORP (fun)) - return NILP (for_call_interactively) ? Qt : Qnil; + return (NILP (for_call_interactively) ? Qt : Qnil); /* Lists may represent commands. */ if (!CONSP (fun)) |
