Mercurial > emacs
changeset 110301:e59d99dc1c71
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).
author | Agustin martin <agustin.martin@hispalinux.es> |
---|---|
date | Fri, 10 Sep 2010 13:20:51 +0200 |
parents | 8e82c01724e1 |
children | fd8902911ce3 |
files | lisp/ChangeLog lisp/textmodes/ispell.el |
diffstat | 2 files changed, 25 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- 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 <agustin.martin@hispalinux.es> + + * 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 <michael.albinus@gmx.de> * net/tramp-cache.el (tramp-parse-connection-properties): Set
--- 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)