From 177eca34cbb28be0835f63e2a3b0fa96c43281d7 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Agust=C3=ADn=20Mart=C3=ADn?= Date: Mon, 16 Apr 2012 11:49:51 +0200 Subject: [PATCH] ispell.el (ispell-set-spellchecker-params): Make dicts use [:alpha:] if possible. If Emacs flavour supports [:alpha:] regexps, use it for Casechars and Not-Casechars. This currently means use it unless flavour is XEmacs. Fixes: debbugs:11200 --- lisp/ChangeLog | 5 +++++ lisp/textmodes/ispell.el | 32 ++++++++++++++++++++++++++++---- 2 files changed, 33 insertions(+), 4 deletions(-) diff --git a/lisp/ChangeLog b/lisp/ChangeLog index f50af02a239..7ebeea0a9dd 100644 --- a/lisp/ChangeLog +++ b/lisp/ChangeLog @@ -1,3 +1,8 @@ +2012-04-12 Agustín Martín Domingo + + * ispell.el (ispell-set-spellchecker-params): Post-process + `ispell-dictionary-alist' to use [:alpha:] if possible. + 2012-04-16 Chong Yidong * image.el (imagemagick--extension-regexp): New variable. diff --git a/lisp/textmodes/ispell.el b/lisp/textmodes/ispell.el index 37311b7337d..cfb1a2b3607 100644 --- a/lisp/textmodes/ispell.el +++ b/lisp/textmodes/ispell.el @@ -767,6 +767,12 @@ here just for backwards compatibility.") (make-obsolete-variable 'ispell-aspell-supports-utf8 'ispell-encoding8-command "23.1") +(defvar ispell-emacs-alpha-regexp + (if (string-match "^[[:alpha:]]+$" "abcde") + "[[:alpha:]]" + nil) + "[[:alpha:]] if Emacs supports [:alpha:] regexp, nil +otherwise (current XEmacs does not support it).") ;;; ********************************************************************** ;;; The following are used by ispell, and should not be changed. @@ -1092,8 +1098,7 @@ aspell is used along with Emacs).") (error nil)) ispell-really-aspell ispell-encoding8-command - ;; XEmacs does not like [:alpha:] regexps. - (string-match "^[[:alpha:]]+$" "abcde")) + ispell-emacs-alpha-regexp) (unless ispell-aspell-dictionary-alist (ispell-find-aspell-dictionaries))) @@ -1117,8 +1122,27 @@ aspell is used along with Emacs).") ispell-dictionary-base-alist)) (unless (assoc (car dict) all-dicts-alist) (add-to-list 'all-dicts-alist dict))) - (setq ispell-dictionary-alist all-dicts-alist)))) - + (setq ispell-dictionary-alist all-dicts-alist)) + + ;; If Emacs flavor supports [:alpha:] use it for global dicts. If + ;; spellchecker also supports UTF-8 via command-line option use it + ;; in communication. This does not affect definitions in ~/.emacs. + (if ispell-emacs-alpha-regexp + (let (tmp-dicts-alist) + (dolist (adict ispell-dictionary-alist) + (add-to-list 'tmp-dicts-alist + (list + (nth 0 adict) ; dict name + "[[:alpha:]]" ; casechars + "[^[:alpha:]]" ; not-casechars + (nth 3 adict) ; otherchars + (nth 4 adict) ; many-otherchars-p + (nth 5 adict) ; ispell-args + (nth 6 adict) ; extended-character-mode + (if ispell-encoding8-command + 'utf-8 + (nth 7 adict))))) + (setq ispell-dictionary-alist tmp-dicts-alist))))) (defun ispell-valid-dictionary-list () "Return a list of valid dictionaries. -- 2.39.2