Subject: bug#24050: 24.5; ispell-change-dictionary suggests non-existent dicts (aspell)

From: Eli Zaretskii <[email-masked]>
Date: Sun, 28 Jul 2019 17:17:22 +0300

> From: Lars Ingebrigtsen <[email-masked]>
> Date: Sun, 28 Jul 2019 12:25:16 +0200
> Cc: [email-masked]
> 
> Thanks for the analysis; altering the code along these lines does fix
> the problem, and `M-x ispell-change-dictionary' now seems a lot more
> useful now that it just lists the dictionaries I actually have
> installed.
> 
> > I would suggest simply removing [1] and not add the *base-alist above when using
> > aspell/hunspell, but the following comment makes it seem like the "invalid"
> > entries are added intentionally:
> >
> >     ;; Substitute ispell-dictionary-alist with the list of
> >     ;; dictionaries corresponding to the given spellchecker.
> >     ;; If a recent aspell or hunspell, use the list of really
> >     ;; installed dictionaries and add to it elements of the original
> >     ;; list that are not present there*. Allow distro info.
> 
> It may be intentional, but the other comments seem to indicate that it's
> not...  and I don't see the utility of listing dictionaries we don't
> have, so I think it's a good change anyway.
> 
> So I've made it on the Emacs trunk now.

I think this is a mistake, and should be reverted.  It prevents users
from telling ispell.el to switch to a dictionary that aspell/hunspell
didn't return in the list.  That's a regression.

The OP's suggestion would make sense if the list created by that
function was only used for completion.  However, in fact we also force
the user to specify a dictionary from the list, i.e. the selection
must match one of the members of the list.  So this change is for the
worse.