emacs-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

master 5c99647: Error out on invalid `define-keymap' keywords


From: Lars Ingebrigtsen
Subject: master 5c99647: Error out on invalid `define-keymap' keywords
Date: Mon, 18 Oct 2021 22:51:10 -0400 (EDT)

branch: master
commit 5c996471babfca2ac54591f7182d31fe7df151f0
Author: Lars Ingebrigtsen <larsi@gnus.org>
Commit: Lars Ingebrigtsen <larsi@gnus.org>

    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.
---
 lisp/emacs-lisp/byte-opt.el | 3 +++
 lisp/subr.el                | 3 ++-
 lisp/vc/cvs-status.el       | 2 +-
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/lisp/emacs-lisp/byte-opt.el b/lisp/emacs-lisp/byte-opt.el
index abfc9b3..9b3b2e5 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))
diff --git a/lisp/subr.el b/lisp/subr.el
index 78709b7..9118978 100644
--- a/lisp/subr.el
+++ b/lisp/subr.el
@@ -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))
diff --git a/lisp/vc/cvs-status.el b/lisp/vc/cvs-status.el
index 723f277..86b62eb 100644
--- a/lisp/vc/cvs-status.el
+++ b/lisp/vc/cvs-status.el
@@ -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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]