Subject: Re: bug#25830: 25.2; ispell doesn't parse hunspell dictionaries properly

From: Martin Kletzander <[email-masked]>
Date: Wed, 22 Feb 2017 11:40:25 +0100

On Tue, Feb 21, 2017 at 10:44:03PM +0200, Eli Zaretskii wrote:
>> Date: Tue, 21 Feb 2017 21:24:54 +0100
>> From: Martin Kletzander <[email-masked]>
>> Cc: [email-masked]
>>
>> I have multiple dictionaries installed.  Hunspell finds all of them, but
>> selects *two* of them.  According to the man page, that is done
>> according to LC_ALL, LC_MESSAGES, and LANG environment variables.
>
>What are the values of those environment variables?
>

$ locale
LANG=en_GB.utf8
LC_CTYPE=en_GB.utf8
LC_NUMERIC="en_GB.utf8"
LC_TIME="en_GB.utf8"
LC_COLLATE="en_GB.utf8"
LC_MONETARY="en_GB.utf8"
LC_MESSAGES="en_GB.utf8"
LC_PAPER="en_GB.utf8"
LC_NAME="en_GB.utf8"
LC_ADDRESS="en_GB.utf8"
LC_TELEPHONE="en_GB.utf8"
LC_MEASUREMENT="en_GB.utf8"
LC_IDENTIFICATION="en_GB.utf8"
LC_ALL=

Honestly, I don't know where it takes the cs_CZ from, *but* if it
didn't, I would have to modify it so that it does.  Simply because
that's what I want it to do by default.

>> Becuase hunspell selects more of them (which is something I want it to
>> do), it lists both of them as "LOADED DICTIONARY", ispell parses those
>> (actually just lines ending with ".aff") and if it finds more than one,
>> it errors out.
>
>The way to run Hunspell with more than one dictionary is hinted upon
>in the doc string of the command ispell-hunspell-add-multi-dic.  After

If I try

  M-x ispell-change-dictionary RET en_GB,cs_CZ RET

I get the same error.

>you invoke that command and specify the dictionaries you want to use
>(e.g., in your case "en_GB,cs_CZ"), type this:
>
>  M-x ispell-change-dictionary RET en_GB,cs_CZ RET
>

M-x ispell-change-dictionary RET errors out with the same error.  If I
run it again, there are no dictionaries loaded, so I cannot use any
parameter for it except 'default'.

>Then try spell-checking.  It should work with that arrangement.  It is
>possible that you will first need to modify your environment variables
>to prevent Hunspell from loading more than one dictionary by default.

Why would I need to do that?  For me hunspell is working as I want it
to, exactly.

I honestly think that ispell should accept multiple dictionaries and
either behave like a multi-dic by default or just not error out when it
parses the second dictionary (less favourable option, though).  I would
love to add that functionality, but I'm not that familiar with the code,
unfortunately =(

Thanks,
Martin