]> git.eshelyaron.com Git - emacs.git/commitdiff
Error out on invalid `define-keymap' keywords
authorLars Ingebrigtsen <larsi@gnus.org>
Tue, 19 Oct 2021 02:50:59 +0000 (04:50 +0200)
committerLars Ingebrigtsen <larsi@gnus.org>
Tue, 19 Oct 2021 02:50:59 +0000 (04:50 +0200)
* 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.

lisp/emacs-lisp/byte-opt.el
lisp/subr.el
lisp/vc/cvs-status.el

index abfc9b3b316d8a5fc298e206937fc49286b3a34c..9b3b2e5ce14cc6c0a325fb769d0771e69c3e1ec2 100644 (file)
@@ -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))
index 78709b7fa9cd3c601935ceb3798025ac30594011..91189787d55a744d9683f08521ee1678f2be78b8 100644 (file)
@@ -6664,7 +6664,8 @@ should be a MENU form as accepted by `easy-menu-define'.
             (:parent (setq parent value))
             (:suppress (setq suppress value))
             (:name (setq name value))
-            (:prefix (setq prefix value))))))
+            (:prefix (setq prefix value))
+            (_ (error "Invalid keyword: %s" keyword))))))
 
     (when (and prefix
                (or full parent suppress keymap))
index 723f277e07f7c34dce1a81bdae63bcc8769d8cfa..86b62eb1ce6ad49a3f455e4510617e480de562b8 100644 (file)
@@ -35,7 +35,7 @@
 ;;;
 
 (defvar-keymap cvs-status-mode-map
-  :inherit 'cvs-mode-map
+  :parent     'cvs-mode-map
   "n"         #'next-line
   "p"         #'previous-line
   "N"         #'cvs-status-next