GNU bug report logs - #24435
25.1; Problem using Hunspell

Previous Next

Package: emacs;

Reported by: Dmitri Paduchikh <dpaduchikh <at> gmail.com>

Date: Wed, 14 Sep 2016 13:27:01 UTC

Severity: normal

Found in version 25.1

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


Message #17 received at 24435 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Dmitri Paduchikh <dpaduchikh <at> gmail.com>
Cc: 24435 <at> debbugs.gnu.org, npostavs <at> users.sourceforge.net
Subject: Re: bug#24435: 25.1; Problem using Hunspell
Date: Wed, 14 Sep 2016 19:57:10 +0300
> From: Dmitri Paduchikh <dpaduchikh <at> gmail.com>
> Date: Wed, 14 Sep 2016 20:33:53 +0500
> Cc: 24435 <at> debbugs.gnu.org
> 
> > I guess older Hunspell versions printed a different string. Does it
> > work if you change the regexp to
> 
> > "\\(?:(but really \\)?Hunspell \\([0-9]+\\.[0-9\\.-]+\\)?)?"
> 
> Sadly, it does not. The immediate cause of this error message is that
> regexp for ispell-program-version matches the Hunspell output. Then the
> corresponding check for Ispell version produces this error. The change
> shown below makes the version check pass, but another problem appears:
> 
> | Starting new Ispell process hunspell with ru_RU dictionary...
> | ispell-phaf: No matching entry for ru_RU in ‘ispell-hunspell-dict-paths-alist’.
> |  (ispell-parse-hunspell-affix-file)
> 
> It seems that Hunspell itself does not have any difficulty locating the
> dictionary.
> 
> $ hunspell -a -d ru_RU
> Hunspell 1.4.0
> проверкаа
> & проверкаа 3 0: проверка, проверкам, проверках

What does your Hunspell output when invoked thus:

  $ hunspell -D

It should output all the dictionaries it has available -- that is what
ispell.el expects.  It was a long-standing bug in Hunspell that (some
versions of) it didn't, so I'm guessing that bug is still not fixed.
Look in their bug database for a patch, apply it, rebuild Hunspell,
and it should work (unless my guess is wrong and some other factor is
at work here).

> Below is the change I made to work arround the version check.

Thanks, but I think this part is too drastic:

> -	(if (ispell-check-minver ispell0-minver ispell-program-version)
> -	    (or (ispell-check-minver ispell-minver ispell-program-version)
> -		(setq ispell-offset 0))
> -	  (error "%s release %s or greater is required"
> -		 ispell-program-name
> -		 ispell-minver))
> +	(cond ((or (null ispell-program-version)
> +                   (ispell-check-minver ispell-minver ispell-program-version)))
> +              ((ispell-check-minver ispell0-minver ispell-program-version)
> +               (setq ispell-offset 0))
> +              (:else (error "%s release %s or greater is required"
> +                            ispell-program-name
> +                            ispell-minver)))

We cannot give up the test of ispell-program-version.  I suggest to do
this the other way around: if Hunspell reports version 1.4 or greater,
_then_ and only then skip the ispell-program-version test.




This bug report was last modified 8 years and 251 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.