Subject: Re: globalized minor modes - priority over mode hook?
From: David Reitter <[email-masked]>
To: Stefan Monnier <[email-masked]>
Cc: "[email-masked] devel" <[email-masked]>
Date: Mon, 26 Apr 2010 11:41:06 -0400
List-Id: <debbugs-submit.debbugs.gnu.org>

On Apr 26, 2010, at 10:30 AM, Stefan Monnier wrote:

>> `run-mode-hooks' runs the mode hooks first, then
>> after-change-major-mode-hooks.
> 
> That would be a bug.  Do you have a recipe to reproduce it?

Yes, below.

Looking at the code of `after-find-file', I think file-local variables will similarly be overruled by the global minor mode.

I ended up implementing what I wanted below by setting defaults for `auto-fill-function', but that's more low-level than intended, obviously.

I'm bcc'ing the bug DB.

---
Emacs -Q

(add-hook 'text-mode-hook 'turn-on-word-wrap) ; turns OFF auto-fill

(defvaralias 'auto-fill-mode 'auto-fill-function)  ; kludge
(define-globalized-minor-mode global-auto-fill-mode auto-fill-mode turn-on-auto-fill)

(defun turn-on-word-wrap ()
  "Turn on Word Wrap mode in current buffer."
  (turn-off-auto-fill)
  (turn-on-visual-line-mode))

;; demo

(global-auto-fill-mode 1)  ; set default
(text-mode)

;; result: auto-fill-mode is on, even though it is intended to be off