From a42ba017bc22ce7714ecd981b25332f92cc02af0 Mon Sep 17 00:00:00 2001 From: "Richard M. Stallman" Date: Thu, 15 Dec 1994 00:42:19 +0000 Subject: [PATCH] (Fdefconst, Fdefvar): Error if too many arguments. --- src/eval.c | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/eval.c b/src/eval.c index eafb9e84a65..f5dd69ff057 100644 --- a/src/eval.c +++ b/src/eval.c @@ -571,18 +571,21 @@ If INITVALUE is missing, SYMBOL's value is not set.") (args) Lisp_Object args; { - register Lisp_Object sym, tem; + register Lisp_Object sym, tem, tail; sym = Fcar (args); - tem = Fcdr (args); - if (!NILP (tem)) + tail = Fcdr (args); + if (!NILP (Fcdr (Fcdr (tail)))) + error ("too many arguments"); + + if (!NILP (tail)) { tem = Fdefault_boundp (sym); if (NILP (tem)) Fset_default (sym, Feval (Fcar (Fcdr (args)))); } - tem = Fcar (Fcdr (Fcdr (args))); - if (!NILP (tem)) + tail = Fcdr (Fcdr (args)); + if (!NILP (Fcar (tail))) { if (!NILP (Vpurify_flag)) tem = Fpurecopy (tem); @@ -612,6 +615,9 @@ it would override the user's choice.") register Lisp_Object sym, tem; sym = Fcar (args); + if (!NILP (Fcdr (Fcdr (Fcdr (args))))) + error ("too many arguments"); + Fset_default (sym, Feval (Fcar (Fcdr (args)))); tem = Fcar (Fcdr (Fcdr (args))); if (!NILP (tem)) -- 2.39.5