summaryrefslogtreecommitdiff
path: root/lisp/textmodes/flyspell.el
diff options
context:
space:
mode:
authorChong Yidong <cyd@stupidchicken.com>2011-04-03 16:59:45 -0400
committerChong Yidong <cyd@stupidchicken.com>2011-04-03 16:59:45 -0400
commitc11325f772dc87f055996b3c196ce0f388fab976 (patch)
treed496badcbcefdd7b28c89ee6cbebc8c92da7139a /lisp/textmodes/flyspell.el
parentef3862adbd5ec284cd55006caaf012aef5e5b4bb (diff)
downloademacs-c11325f772dc87f055996b3c196ce0f388fab976.tar.gz
Improvements to flyspell-mark-duplications-exceptions.
* lisp/textmodes/flyspell.el (flyspell-word): Recognize default dictionary case for flyspell-mark-duplications-exceptions. Use regexp matching for languages. (flyspell-mark-duplications-exceptions): Add "that" and "had" for default dictionary (Bug#7926).
Diffstat (limited to 'lisp/textmodes/flyspell.el')
-rw-r--r--lisp/textmodes/flyspell.el34
1 files changed, 23 insertions, 11 deletions
diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el
index 3c9a4570248..99c9a83e4fb 100644
--- a/lisp/textmodes/flyspell.el
+++ b/lisp/textmodes/flyspell.el
@@ -71,13 +71,23 @@ Detection of repeated words is not implemented in
:type 'boolean)
(defcustom flyspell-mark-duplications-exceptions
- '(("francais" . ("nous" "vous")))
+ '((nil . ("that" "had")) ; Common defaults for English.
+ ("\\`francais" . ("nous" "vous")))
"A list of exceptions for duplicated words.
-It should be a list of (LANGUAGE . EXCEPTION-LIST). LANGUAGE is matched
-against the current dictionary and EXCEPTION-LIST is a list of strings.
-The duplicated word is downcased before it is compared with the exceptions."
+It should be a list of (LANGUAGE . EXCEPTION-LIST).
+
+LANGUAGE is nil, which means the exceptions apply regardless of
+the current dictionary, or a regular expression matching the
+dictionary name (`ispell-local-dictionary' or
+`ispell-dictionary') for which the exceptions should apply.
+
+EXCEPTION-LIST is a list of strings. The checked word is
+downcased before comparing with these exceptions."
:group 'flyspell
- :type '(alist :key-type string :value-type (repeat string)))
+ :type '(alist :key-type (choice (const :tag "All dictionaries" nil)
+ string)
+ :value-type (repeat string))
+ :version "24.1")
(defcustom flyspell-sort-corrections nil
"Non-nil means, sort the corrections alphabetically before popping them."
@@ -1044,12 +1054,14 @@ misspelling and skips redundant spell-checking step."
(not (memq (char-after (1- start)) '(?\} ?\\)))))
flyspell-mark-duplications-flag
(not (catch 'exception
- (dolist (except flyspell-mark-duplications-exceptions)
- (and (string= (or ispell-local-dictionary
- ispell-dictionary)
- (car except))
- (member (downcase word) (cdr except))
- (throw 'exception t)))))
+ (let ((dict (or ispell-local-dictionary
+ ispell-dictionary)))
+ (dolist (except flyspell-mark-duplications-exceptions)
+ (and (or (null (car except))
+ (and (stringp dict)
+ (string-match (car except) dict)))
+ (member (downcase word) (cdr except))
+ (throw 'exception t))))))
(save-excursion
(goto-char start)
(let* ((bound