summaryrefslogtreecommitdiff
path: root/lisp/textmodes/ispell.el
diff options
context:
space:
mode:
authorEli Zaretskii <eliz@gnu.org>2006-05-05 12:34:51 +0000
committerEli Zaretskii <eliz@gnu.org>2006-05-05 12:34:51 +0000
commit87a6b92cf55b34d838c17c6b0c3092a5ff3aa59e (patch)
tree16a417e37c0147855836a6625a294cdd80c69325 /lisp/textmodes/ispell.el
parente98a14ffeb69fbbca82050368edcea2fa0be4f58 (diff)
downloademacs-87a6b92cf55b34d838c17c6b0c3092a5ff3aa59e.tar.gz
(ispell-buffer-local-dict): Add a `no-reload' argument to avoid the call to
`ispell-internal-change-dictionary' when not needed. (ispell-change-dictionary): Use this argument and call `ispell-internal-change-dictionary' after the possible change to `ispell-local-dictionary'. (ispell-internal-change-dictionary): Check for a change in personal dictionary use too. Cosmetic changes from Agustín Martín <agustin.martin@hispalinux.es>.
Diffstat (limited to 'lisp/textmodes/ispell.el')
-rw-r--r--lisp/textmodes/ispell.el30
1 files changed, 17 insertions, 13 deletions
diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el
index da77508dce3..fed06a572bb 100644
--- a/lisp/textmodes/ispell.el
+++ b/lisp/textmodes/ispell.el
@@ -2607,15 +2607,18 @@ By just answering RET you can find out what the current dictionary is."
(mapcar 'list (ispell-valid-dictionary-list)))
nil t)
current-prefix-arg))
- (unless arg (ispell-buffer-local-dict))
+ (unless arg (ispell-buffer-local-dict 'no-reload))
(if (equal dict "default") (setq dict nil))
;; This relies on completing-read's bug of returning "" for no match
(cond ((equal dict "")
+ (ispell-internal-change-dictionary)
(message "Using %s dictionary"
(or ispell-local-dictionary ispell-dictionary "default")))
((equal dict (or ispell-local-dictionary
ispell-dictionary "default"))
- ;; Specified dictionary is the default already. No-op
+ ;; Specified dictionary is the default already. Could reload
+ ;; the dictionaries if needed.
+ (ispell-internal-change-dictionary)
(and (interactive-p)
(message "No change, using %s dictionary" dict)))
(t ; reset dictionary!
@@ -2634,13 +2637,16 @@ By just answering RET you can find out what the current dictionary is."
dict))))
(defun ispell-internal-change-dictionary ()
- "Update the dictionary actually used by Ispell.
+ "Update the dictionary and the personal dictionary used by Ispell.
This may kill the Ispell process; if so,
a new one will be started when needed."
- (let ((dict (or ispell-local-dictionary ispell-dictionary)))
- (unless (equal ispell-current-dictionary dict)
+ (let ((dict (or ispell-local-dictionary ispell-dictionary))
+ (pdict (or ispell-local-pdict ispell-personal-dictionary)))
+ (unless (and (equal ispell-current-dictionary dict)
+ (equal ispell-current-personal-dictionary pdict))
(ispell-kill-ispell t)
- (setq ispell-current-dictionary dict))))
+ (setq ispell-current-dictionary dict
+ ispell-current-personal-dictionary pdict))))
;;; Spelling of comments are checked when ispell-check-comments is non-nil.
@@ -3667,8 +3673,9 @@ Includes Latex/Nroff modes and extended character mode."
;;; Can kill the current ispell process
-(defun ispell-buffer-local-dict ()
+(defun ispell-buffer-local-dict (&optional no-reload)
"Initializes local dictionary and local personal dictionary.
+If optional NO-RELOAD is non-nil, do not make any dictionary reloading.
When a dictionary is defined in the buffer (see variable
`ispell-dictionary-keyword'), it will override the local setting
from \\[ispell-change-dictionary].
@@ -3695,12 +3702,9 @@ Both should not be used to define a buffer-local dictionary."
(if (re-search-forward " *\\([^ \"]+\\)" end t)
(setq ispell-local-pdict
(match-string-no-properties 1)))))))
- ;; Reload if new personal dictionary defined.
- (if (not (equal ispell-current-personal-dictionary
- (or ispell-local-pdict ispell-personal-dictionary)))
- (ispell-kill-ispell t))
- ;; Reload if new dictionary defined.
- (ispell-internal-change-dictionary))
+ (unless no-reload
+ ;; Reload if new dictionary (maybe the personal one) defined.
+ (ispell-internal-change-dictionary)))
(defun ispell-buffer-local-words ()