reassign    690318 hunspell
forwarded 690318
http://sourceforge.net/tracker/?func=detail&aid=3577183&group_id=143754&atid=756395
found         690318 1.3.2-4
thanks

2012/10/12 Yuri D'Elia <[email protected]>:
> Package: dictionaries-common
> Version: 1.12.10
> Severity: important
>
> On my system I'm using emacs23 along with hunspell.
> I don't have the aspell/ispell packages installed.
>
> If I enable flyspell without changing dictionary (thus using the default
> "american"), everything works.
>
> If I attempt to use M-x ispell-change-dictionary "american" (which should give
> me the same results), emacs hangs, resulting in lossage (and thus the
> "important" severity of the bug report).
>
> The last message that I see in the minibuffer is:
>
>   Starting new Ispell process [hunspell::american] ...
>
> but the only option at this point is kill emacs.
> hunspell is recognized correctly, but is probably called with the wrong
> arguments?
>
> aspell works fine, but I'd rather use hunspell.

Hi, thanks for the info

I have been debugging this problem and noticed that this is caused by
some problems with the way hunspell handle init version string in pipe
mode, way that is not compatible with ispell and aspell. This causes
Emacs not catching the error condition caused by missing dictionaries
after failed hunspell initialization. You tried american, but current
myspell.us does not register itself for use with Emacs, so unless you
have a personal entry in your ~/emacs file it should fail with an
error like

ispell-init-process: Can't open affix or dictionary files for
dictionary named "american".

In pipe mode, hunspell sends the init string unconditionally as soon
as it detects the -a switch, so Emacs thiks there is a process and
unsuscessfully expects for output if there is an error. You should not
see this error if you switch to a dict that is registered with Emacs
ispell.el.

I have filed a bug report upstream about this problem

http://sourceforge.net/tracker/?func=detail&aid=3577183&group_id=143754&atid=756395

with this summary:

We recently received this bug report at Debian,
http://bugs.debian.org/690318.
Note that debian ships hunspell 1.3.2.

This seems related to a problem with init string in pipe mode. When
looking at hunspell.cxx code I noticed another potencial problem for
Emacs. Here goes a summary of noticed problems,

* The string is gettextized. Emacs (and may be others) heavily rely in
English format to get info like spellchecker version. This may not work
with translated string.

* In pipe mode hunspell.cxx outputs version string as soon as it detects
the -a switch, even if hunspell is not properly started because of
errors.

This behavior is different from what ispell and aspell do and confuses
Emacs (output that string only when hunspell has properly started),
causing Emacs hang if a missing dictionary is selected.
Emacs waits for more info after that string is received.
This is what seems to trigger http://bugs.debian.org/690318.

As mentioned there I have been playing with a proposed change that
seems to work here in my tests (mostly with normal use under Emacs),
although it is still not deeply tested.

Please find attached a patch with my current changes.

I am reassigning this bug report toi hunspell and marking it as
forwarded upstream.

Regards,

-- 
Agustin

Attachment: 0001-Try-fixing-some-problems-with-init-string-in-pipe-mo.patch
Description: Binary data

Reply via email to