changeset 100987:34edfe1ce294

ispell.el (ispell-encoding8-command): New variable (ispell-aspell-supports-utf8): Mark as obsoleted by ispell-encoding8-command (ispell-check-version): Set ispell-encoding8-command (ispell-check-spellchecker-params, ispell-start-process): Use ispell-encoding8-command flyspell.el (flyspell-large-region): Use ispell-encoding8-command
author Agustin Martin <agustin.martin@hispalinux.es>
date Thu, 08 Jan 2009 18:46:23 +0000
parents 55aea246d319
children 66cd52ff7458
files lisp/ChangeLog lisp/textmodes/flyspell.el lisp/textmodes/ispell.el
diffstat 3 files changed, 43 insertions(+), 26 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/ChangeLog	Thu Jan 08 18:45:08 2009 +0000
+++ b/lisp/ChangeLog	Thu Jan 08 18:46:23 2009 +0000
@@ -1,3 +1,15 @@
+2009-01-08  Agustín Martín  <agustin.martin@hispalinux.es>
+
+	* textmodes/ispell.el (ispell-encoding8-command): New variable
+	(ispell-aspell-supports-utf8): Mark as obsoleted by
+	ispell-encoding8-command
+	(ispell-check-version): Set ispell-encoding8-command
+	(ispell-check-spellchecker-params, ispell-start-process): Use
+	ispell-encoding8-command
+
+	* textmodes/flyspell.el (flyspell-large-region): Use
+	ispell-encoding8-command
+
 2009-01-08  Glenn Morris  <rgm@gnu.org>
 
 	* calendar/cal-menu.el (cal-menu-scroll-menu): Remove entries that don't
--- a/lisp/textmodes/flyspell.el	Thu Jan 08 18:45:08 2009 +0000
+++ b/lisp/textmodes/flyspell.el	Thu Jan 08 18:46:23 2009 +0000
@@ -1526,7 +1526,6 @@
 	  (or ispell-local-pdict ispell-personal-dictionary))
     (let ((args (ispell-get-ispell-args))
 	  (encoding (ispell-get-coding-system))
-	  encoding-command
 	  c)
       (if (and ispell-current-dictionary  ; use specified dictionary
 	       (not (member "-d" args)))  ; only define if not overridden
@@ -1542,15 +1541,11 @@
 
       ;; If we are using recent aspell or hunspell, make sure we use the right encoding
       ;; for communication. ispell or older aspell/hunspell does not support this
-      (if (or (and ispell-really-aspell
-		   ispell-aspell-supports-utf8
-		   (setq encoding-command "--encoding="))
-	      (and ispell-really-hunspell
-		   (setq encoding-command "-i ")))
+      (if ispell-encoding8-command
 	  (setq args
 		(append args
 			(list
-			 (concat encoding-command
+			 (concat ispell-encoding8-command
 				 (symbol-name
 				  encoding))))))
 
--- a/lisp/textmodes/ispell.el	Thu Jan 08 18:45:08 2009 +0000
+++ b/lisp/textmodes/ispell.el	Thu Jan 08 18:46:23 2009 +0000
@@ -708,14 +708,25 @@
 
 (defvar ispell-really-aspell nil)   ; Non-nil if aspell extensions should be used
 (defvar ispell-really-hunspell nil) ; Non-nil if hunspell extensions should be used
+(defvar ispell-encoding8-command nil
+  "Command line option prefix to select UTF-8 if supported, nil otherwise.
+If UTF-8 if supported by spellchecker and is selectable from the command line
+this variable will contain \"--encoding=\" for aspell and \"-i \" for hunspell,
+so UTF-8 or other mime charsets can be selected. That will be set for hunspell
+>=1.1.6 or aspell >= 0.60 in `ispell-check-version'.
+
+For aspell non-nil means to try to automatically find aspell dictionaries.
+Earlier aspell versions do not consistently support UTF-8.  Handling
+this would require some extra guessing in `ispell-aspell-find-dictionary'.")
 
 (defvar ispell-aspell-supports-utf8 nil
-  "Non-nil means to try to automatically find aspell dictionaries.
-This is set to t in `ispell-check-version' for aspell >= 0.60.
-
-Earlier aspell versions do not consistently support UTF-8.  Handling
-this would require some extra guessing in `ispell-aspell-find-dictionary'.")
-
+  "Non nil if aspell has consistent command line UTF-8 support. Obsolete.
+ispell.el and flyspell.el will use for this purpose the more generic
+variable `ispell-encoding8-command' for both aspell and hunspell. Is left
+here just for backwards compatibility.")
+
+(make-obsolete-variable 'ispell-aspell-supports-utf8
+                        'ispell-encoding8-command "23.1")
 
 
 ;;; **********************************************************************
@@ -790,7 +801,8 @@
 	;; Make sure these variables are (re-)initialized to the default value
 	(setq ispell-really-aspell nil
 	      ispell-aspell-supports-utf8 nil
-	      ispell-really-hunspell nil)
+	      ispell-really-hunspell nil
+	      ispell-encoding8-command nil)
 
 	(goto-char (point-min))
 	(or (setq ispell-really-aspell
@@ -819,11 +831,14 @@
 	 (ispell-really-aspell
 	  (if (ispell-check-minver aspell-minver ispell-really-aspell)
 	      (if (ispell-check-minver aspell8-minver ispell-really-aspell)
-		  (setq ispell-aspell-supports-utf8 t))
+		  (progn
+		    (setq ispell-aspell-supports-utf8 t)
+		    (setq ispell-encoding8-command "--encoding=")))
 	    (setq ispell-really-aspell nil)))
 	 (ispell-really-hunspell
-	  (or (ispell-check-minver hunspell8-minver ispell-really-hunspell)
-	      (setq ispell-really-hunspell nil))))))
+	  (if (ispell-check-minver hunspell8-minver ispell-really-hunspell)
+	      (setq ispell-encoding8-command "-i ")
+	    (setq ispell-really-hunspell nil))))))
     result))
 
 (defun ispell-call-process (&rest args)
@@ -1029,7 +1044,7 @@
 		   t)
 	       (error nil))
 	     ispell-really-aspell
-	     ispell-aspell-supports-utf8
+	     ispell-encoding8-command
 	     ;; XEmacs does not like [:alpha:] regexps.
 	     (string-match "^[[:alpha:]]+$" "abcde"))
 	(unless ispell-aspell-dictionary-alist
@@ -1041,7 +1056,7 @@
     ;; of the original list that are not present there. Allow distro info.
     (let ((found-dicts-alist
 	   (if (and ispell-really-aspell
-		    ispell-aspell-supports-utf8)
+		    ispell-encoding8-command)
 	       ispell-aspell-dictionary-alist
 	     nil))
 	  ispell-base-dicts-override-alist ; Override only base-dicts-alist
@@ -2524,7 +2539,6 @@
   "Start the ispell process, with support for no asynchronous processes.
 Keeps argument list for future ispell invocations for no async support."
   (let ((default-directory default-directory)
-	encoding-command
 	args)
     (unless (and (file-directory-p default-directory)
 		 (file-readable-p default-directory))
@@ -2548,15 +2562,11 @@
 
     ;; If we are using recent aspell or hunspell, make sure we use the right encoding
     ;; for communication. ispell or older aspell/hunspell does not support this
-    (if (or (and ispell-really-aspell
-		 ispell-aspell-supports-utf8
-		 (setq encoding-command "--encoding="))
-	    (and ispell-really-hunspell
-		 (setq encoding-command "-i ")))
+    (if ispell-encoding8-command
 	(setq args
 	      (append args
 		      (list
-		       (concat encoding-command
+		       (concat ispell-encoding8-command
 			       (symbol-name (ispell-get-coding-system)))))))
     (setq args (append args ispell-extra-args))