Subject: bug#51843: Ispell personal dictionary breaks other dictionaries

From: Eli Zaretskii <[email-masked]>
Date: Sun, 14 Nov 2021 18:10:22 +0200

[Please use Reply All to reply, so that the bug tracker gets a copy.]

> From: Tor Kringeland <[email-masked]>
> Date: Sun, 14 Nov 2021 16:28:04 +0100
> 
> Eli Zaretskii <[email-masked]> writes:
> 
> > Isn't this the same problem with the LANG setting in the environment?
> 
> I don't think so.  The issues seems to be a disparity between the
> language codes for the personal dictionary (you can only have a personal
> dictionary for one language) and the main dictionary.  The header of
> `/tmp/words.txt' is
> 
>   personal_ws-1.1 en 1
> 
> where the `en' refers to the language/dictionary and `1' refers to the
> number of words in your personal dictionary.  If I initiate a personal
> dictionary with, say, Norwegian, the header looks like
> 
>   personal_ws-1.1 nn 1
> 
> and I get the opposite problem (that it works for Norwegian but not
> English).

How do you initiate the personal dictionary?

> I suspect the error comes from `ispell' feeding these two disparate
> language codes to `aspell': it tries to combine two dictionaries for two
> different languages and `aspell' complains.  But I'm not certain this is
> the case, as I don't understand well the code in `ispell.el'.

Does the same problem happen if you invoke Aspell from the shell,
passing it the Norwegian language and the personal dictionary for
English?

> A possible fix would be to have an `ispell-personal-dictionaries-alist'
> in which one could specify different personal dictionaries for different
> language codes/dictionaries, which would be a feature improvement.
> Another fix would be for `ispell' to check for disparity in language
> code of the current dictionary and the personal dictionary, and if there
> is one, to not feed the personal dictionary into `ispell-program-name'.
> 
> Are you able to reproduce the issue?

I don't use Aspell.  I use Hunspell, where this problem doesn't exist,
and where you can have a separate personal dictionary for each
language.