# HG changeset patch # User Agustin martin # Date 1284117651 -7200 # Node ID e59d99dc1c71a9d802ff46677bd111e0f0ec8dca # Parent 8e82c01724e12545f81638fa039cac04359def4c ispell.el: Improve comments. XEmacs compatibility changes. * textmodes/ispell.el (ispell-init-process): Improve comments. XEmacs compatibility changes regarding (add-hook) 'local option and (set-process-query-on-exit-flag). diff -r 8e82c01724e1 -r e59d99dc1c71 lisp/ChangeLog --- a/lisp/ChangeLog Fri Sep 10 05:33:13 2010 +0000 +++ b/lisp/ChangeLog Fri Sep 10 13:20:51 2010 +0200 @@ -1,3 +1,9 @@ +2010-09-10 Agustín Martín + + * textmodes/ispell.el (ispell-init-process): Improve comments. + XEmacs compatibility changes regarding (add-hook) 'local option + and (set-process-query-on-exit-flag). + 2010-09-09 Michael Albinus * net/tramp-cache.el (tramp-parse-connection-properties): Set diff -r 8e82c01724e1 -r e59d99dc1c71 lisp/textmodes/ispell.el --- a/lisp/textmodes/ispell.el Fri Sep 10 05:33:13 2010 +0000 +++ b/lisp/textmodes/ispell.el Fri Sep 10 13:20:51 2010 +0200 @@ -2674,24 +2674,27 @@ ispell-filter-continue nil ispell-process-directory default-directory) - ;; Kill ispell process when killing its associated buffer if using Ispell - ;; per-directory personal dictionaries. (unless (equal ispell-process-directory (expand-file-name "~/")) - (with-current-buffer - (if (and (window-minibuffer-p) - (fboundp 'minibuffer-selected-window)) ;; E.g. XEmacs. - ;; When spellchecking minibuffer contents, assign ispell - ;; process to parent buffer if known (not known for XEmacs). - ;; Use (buffer-name) otherwise. + ;; At this point, `ispell-process-directory' will be "~/" unless using + ;; Ispell with directory-specific dicts and not in XEmacs minibuffer. + ;; If not, kill ispell process when killing buffer. It may be in a + ;; removable device that would otherwise become un-mountable. + (with-current-buffer + (if (and (window-minibuffer-p) ;; In minibuffer + (fboundp 'minibuffer-selected-window)) ;; Not XEmacs. + ;; In this case kill ispell only when parent buffer is killed + ;; to avoid over and over ispell kill. (window-buffer (minibuffer-selected-window)) - (current-buffer)) - (add-hook 'kill-buffer-hook (lambda () (ispell-kill-ispell t)) - nil 'local))) + (current-buffer)) + ;; 'local does not automatically make hook buffer-local in XEmacs. + (if (featurep 'xemacs) + (make-local-hook 'kill-buffer-hook)) + (add-hook 'kill-buffer-hook + (lambda () (ispell-kill-ispell t)) nil 'local))) (if ispell-async-processp (set-process-filter ispell-process 'ispell-filter)) - ;; protect against bogus binding of `enable-multibyte-characters' in - ;; XEmacs. + ;; Protect against XEmacs bogus binding of `enable-multibyte-characters'. (if (and (or (featurep 'xemacs) (and (boundp 'enable-multibyte-characters) enable-multibyte-characters)) @@ -2727,7 +2730,9 @@ (if extended-char-mode ; ~ extended character mode (ispell-send-string (concat extended-char-mode "\n")))) (if ispell-async-processp - (set-process-query-on-exit-flag ispell-process nil))))) + (if (fboundp 'set-process-query-on-exit-flag) ;; not XEmacs + (set-process-query-on-exit-flag ispell-process nil) + (process-kill-without-query ispell-process)))))) ;;;###autoload (defun ispell-kill-ispell (&optional no-error)