unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Tor Kringeland <tor.a.s.kringeland@ntnu.no>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 51843@debbugs.gnu.org
Subject: bug#51843: Ispell personal dictionary breaks other dictionaries
Date: Sun, 14 Nov 2021 17:47:42 +0100	[thread overview]
Message-ID: <m2czn2d6q9.fsf@ntnu.no> (raw)
In-Reply-To: <83y25qu39t.fsf@gnu.org>

Eli Zaretskii <eliz@gnu.org> writes:

> [Please use Reply All to reply, so that the bug tracker gets a copy.]
>
>> From: Tor Kringeland <tor.a.s.kringeland@ntnu.no>
>> Date: Sun, 14 Nov 2021 16:28:04 +0100
>> 
>> Eli Zaretskii <eliz@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.





      reply	other threads:[~2021-11-14 16:47 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-14 13:50 bug#51843: Ispell personal dictionary breaks other dictionaries Tor Kringeland
2021-11-14 14:31 ` Eli Zaretskii
2021-11-14 15:29   ` Tor Kringeland
     [not found]   ` <m2czn2eozf.fsf@ntnu.no>
2021-11-14 16:10     ` Eli Zaretskii
2021-11-14 16:47       ` Tor Kringeland [this message]

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=m2czn2d6q9.fsf@ntnu.no \
    --to=tor.a.s.kringeland@ntnu.no \
    --cc=51843@debbugs.gnu.org \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).