summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2021-10-19 04:50:59 +0200
committerLars Ingebrigtsen <larsi@gnus.org>2021-10-19 04:50:59 +0200
commit5c996471babfca2ac54591f7182d31fe7df151f0 (patch)
treef0950fdc00874b36ec81e6332bddcfd660413e3a /lisp/emacs-lisp
parentfbf7dd3ccecda778f6ea70d0ad6778b138e73e1d (diff)
downloademacs-5c996471babfca2ac54591f7182d31fe7df151f0.tar.gz
emacs-5c996471babfca2ac54591f7182d31fe7df151f0.tar.bz2
emacs-5c996471babfca2ac54591f7182d31fe7df151f0.zip
Error out on invalid `define-keymap' keywords
* lisp/subr.el (define-keymap--define): Error out on invalid keywords (bug#51268). * lisp/emacs-lisp/byte-opt.el (byte-optimize-define-keymap): Check keywords at compile time. * lisp/vc/cvs-status.el (cvs-status-mode-map): Fix keyword.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/byte-opt.el3
1 files changed, 3 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index abfc9b3b316..9b3b2e5ce14 100644
--- a/lisp/emacs-lisp/byte-opt.el
+++ b/lisp/emacs-lisp/byte-opt.el
@@ -1211,6 +1211,9 @@ See Info node `(elisp) Integer Basics'."
(while (and form
(keywordp (car form))
(not (eq (car form) :menu)))
+ (unless (memq (car form)
+ '(:full :keymap :parent :suppress :name :prefix))
+ (error "Invalid keyword: %s" (car form)))
(push (pop form) result)
(when (null form)
(error "Uneven number of keywords in %S" form))