1
Fork 0
mirror of git://git.sv.gnu.org/emacs.git synced 2025-12-15 10:30:25 -08:00

(whitespace-unload-function): New-style unload function.

When run, unintern `whitespace-unload-hook' and call
`unload-feature' recursively to stop the old hook from
messing with the unloading.
This commit is contained in:
Juanma Barranquero 2007-10-31 18:45:14 +00:00
parent 89242dda15
commit 3e1da21463
2 changed files with 15 additions and 11 deletions

View file

@ -6,8 +6,9 @@
2007-10-31 Juanma Barranquero <lekktu@gmail.com>
* whitespace.el (whitespace-write-file-hook): Remove interactive spec.
(whitespace-unload-function): New-style unload function.
If run, stop old style `-hook' function from running.
(whitespace-unload-function): New-style unload function. When run,
unintern `whitespace-unload-hook' and call `unload-feature' recursively
to stop the old hook from messing with the unloading.
* strokes.el (strokes-alphabetic-lessp): Doc fix.

View file

@ -793,15 +793,18 @@ This is meant to be added buffer-locally to `write-file-functions'."
(defun whitespace-unload-function ()
"Unload the whitespace library."
(whitespace-global-mode -1)
(save-current-buffer
(dolist (buf (buffer-list))
(set-buffer buf)
(remove-hook 'write-file-functions 'whitespace-write-file-hook t)))
;; new-style unloading, stop old style from running
(with-no-warnings (setq whitespace-unload-hook nil))
;; continue standard unloading
nil)
(if (unintern "whitespace-unload-hook")
;; if whitespace-unload-hook is defined, let's get rid of it
;; and recursively call `unload-feature'
(progn (unload-feature 'whitespace) t)
;; this only happens in the recursive call
(whitespace-global-mode -1)
(save-current-buffer
(dolist (buf (buffer-list))
(set-buffer buf)
(remove-hook 'write-file-functions 'whitespace-write-file-hook t)))
;; continue standard unloading
nil))
(defun whitespace-unload-hook ()
(remove-hook 'find-file-hook 'whitespace-buffer)