summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp/cl-macs.el
diff options
context:
space:
mode:
authorGerd Möllmann <gerd@gnu.org>2022-10-23 10:14:10 +0200
committerStefan Kangas <stefankangas@gmail.com>2022-11-11 14:13:46 +0100
commit6d9065b7487f35297994117bb1144f46ffa45313 (patch)
tree303d1aca8b4a0210d0140331d3c7c0d5bfb6da88 /lisp/emacs-lisp/cl-macs.el
parentc64d94c84979425665b9ca88c1cad5830d2fabe0 (diff)
downloademacs-6d9065b7487f35297994117bb1144f46ffa45313.tar.gz
Fix &key parameters called without arguments (bug#58714)
* lisp/emacs-lisp/cl-macs.el (cl--do-arglist): Check for missing argument. * test/lisp/emacs-lisp/cl-macs-tests.el (cl-&key-arguments): New test.
Diffstat (limited to 'lisp/emacs-lisp/cl-macs.el')
-rw-r--r--lisp/emacs-lisp/cl-macs.el2
1 files changed, 2 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/cl-macs.el b/lisp/emacs-lisp/cl-macs.el
index beafee1d631..43a2ed92059 100644
--- a/lisp/emacs-lisp/cl-macs.el
+++ b/lisp/emacs-lisp/cl-macs.el
@@ -656,6 +656,8 @@ its argument list allows full Common Lisp conventions."
(check `(while ,var
(cond
((memq (car ,var) ',(append keys allow))
+ (unless (cdr ,var)
+ (error "Missing argument for %s" (car ,var)))
(setq ,var (cdr (cdr ,var))))
((car (cdr (memq (quote ,@allow) ,restarg)))
(setq ,var nil))