diff options
author | Gerd Möllmann <gerd@gnu.org> | 2022-10-23 10:14:10 +0200 |
---|---|---|
committer | Stefan Kangas <stefankangas@gmail.com> | 2022-11-11 14:13:46 +0100 |
commit | 6d9065b7487f35297994117bb1144f46ffa45313 (patch) | |
tree | 303d1aca8b4a0210d0140331d3c7c0d5bfb6da88 /lisp/emacs-lisp/cl-macs.el | |
parent | c64d94c84979425665b9ca88c1cad5830d2fabe0 (diff) | |
download | emacs-6d9065b7487f35297994117bb1144f46ffa45313.tar.gz emacs-6d9065b7487f35297994117bb1144f46ffa45313.tar.bz2 emacs-6d9065b7487f35297994117bb1144f46ffa45313.zip |
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.el | 2 |
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)) |