emacs-diffs
[Top][All Lists]
Advanced

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

master d012595: Make byte-compiled uses of `define-minor-mode' more comp


From: Lars Ingebrigtsen
Subject: master d012595: Make byte-compiled uses of `define-minor-mode' more compatible
Date: Thu, 11 Mar 2021 18:42:00 -0500 (EST)

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

    Make byte-compiled uses of `define-minor-mode' more compatible
    
    * lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Be more
    defensive about accessing minor mode variables.
---
 lisp/emacs-lisp/easy-mmode.el | 18 +++++++++++++-----
 1 file changed, 13 insertions(+), 5 deletions(-)

diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index 4a9e580..addb58c 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -332,12 +332,20 @@ or call the function `%s'."))))
                    t)))
            ;; Keep minor modes list up to date.
            ,@(if globalp
-                 `((setq global-minor-modes (delq ',modefun 
global-minor-modes))
+                 ;; When running this byte-compiled code in earlier
+                 ;; Emacs versions, these variables may not be defined
+                 ;; there.  So check defensively, even if they're
+                 ;; always defined in Emacs 28 and up.
+                 `((when (boundp 'global-minor-modes)
+                     (setq global-minor-modes
+                           (delq ',modefun global-minor-modes))
+                     (when ,getter
+                       (push ',modefun global-minor-modes))))
+               ;; Ditto check.
+               `((when (boundp 'local-minor-modes)
+                   (setq local-minor-modes (delq ',modefun local-minor-modes))
                    (when ,getter
-                     (push ',modefun global-minor-modes)))
-               `((setq local-minor-modes (delq ',modefun local-minor-modes))
-                 (when ,getter
-                   (push ',modefun local-minor-modes))))
+                     (push ',modefun local-minor-modes)))))
            ,@body
            ;; The on/off hooks are here for backward compatibility only.
            (run-hooks ',hook (if ,getter ',hook-on ',hook-off))



reply via email to

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