From 6d9065b7487f35297994117bb1144f46ffa45313 Mon Sep 17 00:00:00 2001 From: Gerd Möllmann Date: Sun, 23 Oct 2022 10:14:10 +0200 Subject: 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. --- lisp/emacs-lisp/cl-macs.el | 2 ++ 1 file changed, 2 insertions(+) (limited to 'lisp/emacs-lisp') 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)) -- cgit v1.2.3