emacs-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: ispell.el doesn't work any more


From: Magnus Henoch
Subject: Re: ispell.el doesn't work any more
Date: Tue, 13 Sep 2005 00:29:04 +0200
User-agent: Gnus/5.110004 (No Gnus v0.4) Emacs/22.0.50 (berkeley-unix)

Eli Zaretskii <address@hidden> writes:

> I don't know why older Aspell's are no good for us.  Magnus, can you
> please comment on that?

The main cause is that aspell >= 0.60 consistently supports UTF-8,
which simplifies the automatic dictionary detection.  Supporting
aspell 0.50 would involve either looking for "charset" declarations in
in ispell-aspell-find-dictionary, or disabling the dictionary finding
and relying on the value of ispell-dictionary-alist.

The latter would be something like this patch:

--- orig/lisp/textmodes/ispell.el
+++ mod/lisp/textmodes/ispell.el
@@ -719,6 +719,12 @@
 
 (defvar ispell-really-aspell nil) ; Non-nil if aspell extensions should be used
 
+(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'.")
 
 
 
@@ -815,8 +821,9 @@
         (let (case-fold-search)
           (setq ispell-really-aspell
                (and (search-forward-regexp "(but really Aspell \\(.*\\))" nil 
t)
-                    (if (version< (match-string 1) "0.60")
-                        (error "aspell version 0.60 or greater is required")
+                    (progn
+                      (setq ispell-aspell-supports-utf8
+                            (not (version< (match-string 1) "0.60")))
                       t)))))
       (kill-buffer (current-buffer)))
     result))
@@ -972,7 +979,8 @@
             (condition-case ()
                 (progn (ispell-check-version) t)
               (error nil))
-            ispell-really-aspell)
+            ispell-really-aspell
+            ispell-aspell-supports-utf8)
     (ispell-find-aspell-dictionaries))
   (let ((dicts (append ispell-local-dictionary-alist ispell-dictionary-alist))
        (dict-list (cons "default" nil))
Other than that, minor details and risk of bit rot.  E.g. 0.50 accepts
"-l" as an alias of "list", while 0.60 does not (this was fixed in
flyspell a couple of months ago).

Magnus

reply via email to

[Prev in Thread] Current Thread [Next in Thread]