summaryrefslogtreecommitdiff
path: root/lisp/emacs-lisp
diff options
context:
space:
mode:
authorStefan Monnier <monnier@iro.umontreal.ca>2010-04-27 14:14:16 -0400
committerStefan Monnier <monnier@iro.umontreal.ca>2010-04-27 14:14:16 -0400
commit17818d715235dafd82625fb6d739dddaf60c2701 (patch)
treefb563f2b8ae290301c2986f6360710bbab392e19 /lisp/emacs-lisp
parentccaa47655d21a7c5b37d4e3607deb9c729b34d70 (diff)
downloademacs-17818d715235dafd82625fb6d739dddaf60c2701.tar.gz
emacs-17818d715235dafd82625fb6d739dddaf60c2701.tar.bz2
emacs-17818d715235dafd82625fb6d739dddaf60c2701.zip
Let the user turn off locally a globalized minor mode
* emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Avoid re-enabling a minor mode after the user turned the minor mode off if MODE-enable-in-buffers is run twice (typically once from fundamental-mode's after-change-major-mode-hook and a second time from run-mode-hook's own after-change-major-mode-hook).
Diffstat (limited to 'lisp/emacs-lisp')
-rw-r--r--lisp/emacs-lisp/easy-mmode.el15
1 files changed, 8 insertions, 7 deletions
diff --git a/lisp/emacs-lisp/easy-mmode.el b/lisp/emacs-lisp/easy-mmode.el
index 2849f4cf154..d18aa230b75 100644
--- a/lisp/emacs-lisp/easy-mmode.el
+++ b/lisp/emacs-lisp/easy-mmode.el
@@ -361,13 +361,14 @@ See `%s' for more information on %s."
(dolist (buf ,MODE-buffers)
(when (buffer-live-p buf)
(with-current-buffer buf
- (if ,mode
- (unless (eq ,MODE-major-mode major-mode)
- (,mode -1)
- (,turn-on)
- (setq ,MODE-major-mode major-mode))
- (,turn-on)
- (setq ,MODE-major-mode major-mode))))))
+ (unless (eq ,MODE-major-mode major-mode)
+ (if ,mode
+ (progn
+ (,mode -1)
+ (,turn-on)
+ (setq ,MODE-major-mode major-mode))
+ (,turn-on)
+ (setq ,MODE-major-mode major-mode)))))))
(put ',MODE-enable-in-buffers 'definition-name ',global-mode)
(defun ,MODE-check-buffers ()