[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
add-hook versus custom-set-variables
From: |
Bill Wohler |
Subject: |
add-hook versus custom-set-variables |
Date: |
Wed, 28 Dec 2005 15:05:15 -0800 |
I set mh-folder-mode-hook to bw-mh-folder-mode-hook in my
custom-set-variables stanza.
When I start Emacs, I see that mh-folder-mode-hook is set to
mc-install-read-mode instead. I'd expect to see both
mc-install-read-mode and bw-mh-folder-mode-hook. This reminded me a lot
of the problems we had with the defvar of the hook in
define-derived-mode.
It appears that an add-hook call during the mailcrypt initialization is
binding mh-folder-mode-hook so that the custom-set-variables is losing.
I think Luc's explanation in
http://article.gmane.org/gmane.emacs.pretest.bugs/9993 is germane.
Since users will use the Customization interface to set hooks (at least
166 of them in my instance), I think it is important to figure out a
general resolution to this problem.
Two workarounds which aren't pretty are to insist that the user add a
defvar in .emacs for any hook he customizes or for system libraries to
delay the evaluation of add-hook until after the related
custom-set-variables and defcustom have been evaluated.
When I modified mailcrypt-init.el as follows:
;; MH-E hooks
(eval-after-load 'mh-customize
(progn
(message "Adding mailcrypt hooks to MH-E...")
(add-hook 'mh-folder-mode-hook 'mc-install-read-mode)
(add-hook 'mh-letter-mode-hook 'mc-install-write-mode)))
I found that the eval-after-load form was evaluated during
initialization rather than after I loaded MH-E. From *Messages*:
Loading 50mailcrypt (source)...
Adding mailcrypt hooks to MH-E...
Any thoughts as to why this happened? No, mh-customize had not been
loaded yet.
For the Debian folks, I have the following code in my .emacs so that I
can use Debian Emacs Lisp packages while running CVS Emacs:
(when (eq emacs-major-version 22)
(add-to-list 'load-path "/usr/share/emacs/site-lisp")
(load-library "debian-startup")
(setq debian-emacs-flavor 'emacs-snapshot)
(debian-startup 'emacs-snapshot))
--
Bill Wohler <address@hidden> http://www.newt.com/wohler/ GnuPG ID:610BD9AD
Maintainer of comp.mail.mh FAQ and MH-E. Vote Libertarian!
If you're passed on the right, you're in the wrong lane.
- add-hook versus custom-set-variables,
Bill Wohler <=
Re: add-hook versus custom-set-variables, Bill Wohler, 2005/12/30