diff --git a/etc/NEWS b/etc/NEWS index ff65a5520d..587e17d3f3 100644 --- a/etc/NEWS +++ b/etc/NEWS @@ -231,6 +231,13 @@ characters that quote text "like this" are replaced by double typographic quotes, “like this”, in text modes, and in comments in non-text modes. ++++ +** New user option 'flyspell-case-fold-duplications' +This option controls whether Flyspell mode considers consecutive words +to be duplicates if they are not in the same case. If non-nil, the +default, words are considered to be duplicates even if their letters' +case does not match. + --- ** 'write-abbrev-file' now includes special properties. 'write-abbrev-file' now writes special properties like ':case-fixed' diff --git a/lisp/textmodes/flyspell.el b/lisp/textmodes/flyspell.el index f6a809b18e..e5a7639e20 100644 --- a/lisp/textmodes/flyspell.el +++ b/lisp/textmodes/flyspell.el @@ -68,6 +68,12 @@ flyspell-mark-duplications-flag :group 'flyspell :type 'boolean) +(defcustom flyspell-case-fold-duplications t + "Non-nil means Flyspell matches duplicate words case-insensitively." + :group 'flyspell + :type 'boolean + :version 27.1) + (defcustom flyspell-mark-duplications-exceptions '((nil . ("that" "had")) ; Common defaults for English. ("\\`francais" . ("nous" "vous"))) @@ -1154,7 +1160,8 @@ flyspell-word (- (save-excursion (skip-chars-backward " \t\n\f"))))) (p (when (>= bound (point-min)) - (flyspell-word-search-backward word bound t)))) + (flyspell-word-search-backward + word bound flyspell-case-fold-duplications)))) (and p (/= p start))))) ;; yes, this is a doublon (flyspell-highlight-incorrect-region start end 'doublon)