# HG changeset patch # User Eli Zaretskii # Date 1137149129 0 # Node ID c8f233733d78258eb6f34dfb969e64b23c602a08 # Parent b5a63fe8bdf9a360f46a4a16f8e8576ce868d00a (ispell-init-process): Include the used dictionary in ispell process start message. (ispell-internal-change-dictionary): When flyspell-mode is active and dictionary is changed, make sure ispell process is restarted and flyspell word cache cleared out for the current buffer. (ispell-change-dictionary): Make sure flyspell word cache is cleared out in all buffers with active flyspell mode when dictionary is globally changed. Call ispell-internal-change-dictionary after dictionary change. diff -r b5a63fe8bdf9 -r c8f233733d78 lisp/textmodes/ispell.el --- a/lisp/textmodes/ispell.el Fri Jan 13 09:56:23 2006 +0000 +++ b/lisp/textmodes/ispell.el Fri Jan 13 10:45:29 2006 +0000 @@ -202,6 +202,7 @@ ;;; Code: (defvar mail-yank-prefix) +(eval-when-compile (defvar flyspell-word-cache-word)) ;;; Custom.el macros require recompiling this when they are not present. ;;; Add in backward compatible custom support. @@ -2504,7 +2505,8 @@ (setq ispell-filter nil ispell-filter-continue nil) ;; may need to restart to select new personal dictionary. (ispell-kill-ispell t) - (message "Starting new Ispell process...") + (message "Starting new Ispell process [%s] ..." + (or ispell-local-dictionary ispell-dictionary "default")) (sit-for 0) (setq ispell-library-directory (ispell-check-version) ispell-process-directory default-directory @@ -2619,6 +2621,14 @@ (setq ispell-local-dictionary dict) (setq ispell-local-dictionary-overridden t)) (error "Undefined dictionary: %s" dict)) + ;; For global setting clear out flyspell word cache when needed + (when (and arg + (featurep 'flyspell)) + (dolist (buf (buffer-list)) + (with-current-buffer buf + (when flyspell-mode + (setq flyspell-word-cache-word nil))))) + (ispell-internal-change-dictionary) (message "%s Ispell dictionary set to %s" (if arg "Global" "Local") dict)))) @@ -2630,8 +2640,12 @@ (let ((dict (or ispell-local-dictionary ispell-dictionary))) (unless (equal ispell-current-dictionary dict) (ispell-kill-ispell t) - (setq ispell-current-dictionary dict)))) - + (setq ispell-current-dictionary dict) + ;; If needed, start ispell process and clear out flyspell word cache + (when (and (featurep 'flyspell) + flyspell-mode) + (ispell-init-process) + (setq flyspell-word-cache-word nil))))) ;;; Spelling of comments are checked when ispell-check-comments is non-nil.