]> code.delx.au - gnu-emacs/commitdiff
Signal an error when `setq' has an odd number of arguments. Fixes bug#20241.
authorAlan Mackenzie <acm@muc.de>
Mon, 23 Nov 2015 13:56:37 +0000 (13:56 +0000)
committerAlan Mackenzie <acm@muc.de>
Mon, 23 Nov 2015 13:56:37 +0000 (13:56 +0000)
* src/eval.c (Fsetq): Signal an error on an odd number of arguments.
(syms_of_eval): Add a DEFSYM for Qsetq.

src/eval.c

index 023c2ef6aab191ca07496dd0aa1edc663ec3a9f2..d04796abc3a423f05d504b2597958b80be693c5c 100644 (file)
@@ -487,6 +487,10 @@ usage: (setq [SYM VAL]...)  */)
   if (CONSP (args))
     {
       Lisp_Object args_left = args;
+      Lisp_Object numargs = Flength (args);
+
+      if (XINT (numargs) & 1)
+        xsignal2 (Qwrong_number_of_arguments, Qsetq, numargs);
 
       do
        {
@@ -3654,6 +3658,7 @@ To prevent this happening, set `quit-flag' to nil
 before making `inhibit-quit' nil.  */);
   Vinhibit_quit = Qnil;
 
+  DEFSYM (Qsetq, "setq");
   DEFSYM (Qinhibit_quit, "inhibit-quit");
   DEFSYM (Qautoload, "autoload");
   DEFSYM (Qinhibit_debugger, "inhibit-debugger");