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

From: Tor Kringeland <[email-masked]>
Date: Sun, 14 Nov 2021 16:29:29 +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).

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'.

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?

(Sorry for re-sending, I forgot to CC the mailing list.)