diff lisp/emacs-lisp/easy-mmode.el @ 108144:c46b2d0614cb

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).
author Stefan Monnier <monnier@iro.umontreal.ca>
date Tue, 27 Apr 2010 14:14:16 -0400
parents 64cb38b81502
children cede0252a395
line wrap: on
line diff
--- a/lisp/emacs-lisp/easy-mmode.el	Tue Apr 27 13:57:32 2010 -0400
+++ b/lisp/emacs-lisp/easy-mmode.el	Tue Apr 27 14:14:16 2010 -0400
@@ -361,13 +361,14 @@
 	 (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 ()