summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorLars Ingebrigtsen <larsi@gnus.org>2021-02-14 12:37:44 +0100
committerLars Ingebrigtsen <larsi@gnus.org>2021-02-14 12:37:44 +0100
commit760910f4917ad8ff5e1cd1bf0bfec443b02f0e44 (patch)
treee917992524075eba732a2bc7ae21789b9ab9b570 /lisp/emacs-lisp
parent103039b06c2c9a917fc796d2a4afda8433e37473 (diff)
downloademacs-760910f4917ad8ff5e1cd1bf0bfec443b02f0e44.tar.gz
emacs-760910f4917ad8ff5e1cd1bf0bfec443b02f0e44.tar.bz2
emacs-760910f4917ad8ff5e1cd1bf0bfec443b02f0e44.zip
Add a new buffer-local variable `minor-modes'
* lisp/emacs-lisp/easy-mmode.el (define-minor-mode): Keep `minor-modes' updated. * src/buffer.c (bset_minor_modes, Fmake_indirect_buffer) (reset_buffer, init_buffer_once): Initialise `minor-modes'. (syms_of_buffer): Add `minor-modes' as a new permanently-local variable. * src/buffer.h (struct buffer): Add minor_modes_.
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/easy-mmode.el4
1 files changed, 4 insertions, 0 deletions
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index 2916ae4adea..bfffbe4bf20 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -317,6 +317,10 @@ or call the function `%s'."))))
nil)
(t
t)))
+ ;; Keep `minor-modes' up to date.
+ (setq minor-modes (delq ',modefun minor-modes))
+ (when ,getter
+ (push ',modefun minor-modes))
,@body
;; The on/off hooks are here for backward compatibility only.
(run-hooks ',hook (if ,getter ',hook-on ',hook-off))