GNU bug report logs -
#51843
Ispell personal dictionary breaks other dictionaries
Previous Next
Full log
Message #17 received at 51843 <at> debbugs.gnu.org (full text, mbox):
Eli Zaretskii <eliz <at> gnu.org> writes:
> [Please use Reply All to reply, so that the bug tracker gets a copy.]
>
>> From: Tor Kringeland <tor.a.s.kringeland <at> ntnu.no>
>> Date: Sun, 14 Nov 2021 16:28:04 +0100
>>
>> Eli Zaretskii <eliz <at> gnu.org> 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?
By setting `ispell-personal-dictionary' to point at a non-existent file.
It then creates the file with the language code for the current
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?
Yes. If `/tmp/words.txt' is
personal_ws-1.1 en 1
mysterious
running
echo -n mystiks | aspell -a --lang=nn_NO -p /tmp/words.txt
outputs `Error: Expected language "nn" but got "en".' similar to the
error using `ispell' in Emacs. Running the following similar command
with `hunspell'
echo -n mystiks | hunspell -a -d nn_NO -p /tmp/words.txt
gives no complaints and suggests the word is a typo for `mystisk'.
One could argue that the behavior of `hunspell' is not the correct one
here, since we're using dictionaries of two different languages and it
could have yielded a warning at least. But this has nothing to do with
Emacs.
But given that this is "undefined behavior" for spell checkers one can
use with `ispell', it would be good if Emacs could sanity check the
language code of the personal dictionary with that of the main one and
not include the former if there is a disparity --- or optionally being
able to set personal dictionaries for multiple language codes.
This bug report was last modified 3 years and 270 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.