comparison lisp/emacs-lisp/easy-mmode.el @ 108154:cede0252a395

Make it possible to locally disable a globally enabled mode. * simple.el (fundamental-mode): Run fundamental-mode-hook. * emacs-lisp/derived.el (define-derived-mode): Use fundamental-mode rather than kill-all-local-variables so it runs fundamental-mode-hook. * emacs-lisp/easy-mmode.el (define-globalized-minor-mode): Use fundamental-mode-hook to run MODE-enable-in-buffers earlier, so that subsequent hooks get a chance to disable it.
author Stefan Monnier <monnier@iro.umontreal.ca>
date Wed, 28 Apr 2010 11:18:37 -0400
parents c46b2d0614cb
children 731a16c5bb20
comparison
equal deleted inserted replaced
108153:533b15049ee7 108154:cede0252a395
336 ;; Setup hook to handle future mode changes and new buffers. 336 ;; Setup hook to handle future mode changes and new buffers.
337 (if ,global-mode 337 (if ,global-mode
338 (progn 338 (progn
339 (add-hook 'after-change-major-mode-hook 339 (add-hook 'after-change-major-mode-hook
340 ',MODE-enable-in-buffers) 340 ',MODE-enable-in-buffers)
341 (add-hook 'fundamental-mode-hook ',MODE-enable-in-buffers)
341 (add-hook 'find-file-hook ',MODE-check-buffers) 342 (add-hook 'find-file-hook ',MODE-check-buffers)
342 (add-hook 'change-major-mode-hook ',MODE-cmhh)) 343 (add-hook 'change-major-mode-hook ',MODE-cmhh))
343 (remove-hook 'after-change-major-mode-hook ',MODE-enable-in-buffers) 344 (remove-hook 'after-change-major-mode-hook ',MODE-enable-in-buffers)
345 (remove-hook 'fundamental-mode-hook ',MODE-enable-in-buffers)
344 (remove-hook 'find-file-hook ',MODE-check-buffers) 346 (remove-hook 'find-file-hook ',MODE-check-buffers)
345 (remove-hook 'change-major-mode-hook ',MODE-cmhh)) 347 (remove-hook 'change-major-mode-hook ',MODE-cmhh))
346 348
347 ;; Go through existing buffers. 349 ;; Go through existing buffers.
348 (dolist (buf (buffer-list)) 350 (dolist (buf (buffer-list))