Subject: 24.3.90; Ispell doesn't support Hunspell's "multiple dictionaries" feature
From: Eli Zaretskii <[email-masked]>
To: [email-masked]
Date: Tue, 22 Apr 2014 21:15:06 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

This is more a missing feature than a bug.

According to Hunspell's man page:

       -d dict,dict2,...
              Set dictionaries by their base  names  with  or  without  paths.
              Example of the syntax:

       -d en_US,en_geo,en_med,de_DE,de_med

       en_US and de_DE are base dictionaries, they consist of aff and dic file
       pairs: en_US.aff, en_US.dic and de_DE.aff, de_DE.dic.  En_geo,  en_med,
       de_med  are special dictionaries: dictionaries without affix file.

(This seems to say that you can spell-check text that mixes English
and German words, but that's a lie: Hunspell actually uses only the
first .aff file and disregards the rest.)  This feature is useful for
combining general dictionary with several specialized dictionaries.
But ispell.el does not support this feature: it only allows specifying
a single dictionary at the prompt of ispell-change-dictionary, and
insists on getting one of the strings it collected from the output of
"hunspell -D" (and it looks like dictionaries without matching affix
files are filtered out of the list).

It would be nice to have more freedom in specifying the arguments to
the -d switch.

In GNU Emacs 24.3.90.35 (i686-pc-mingw32)
 of 2014-04-22 on HOME-C4E4A596F7
Repository revision: 117004 [email-masked]
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --prefix=/d/usr --enable-checking=yes,glyphs 'CFLAGS=-O0
 -gdwarf-2 -g3''

Important settings:
  value of $LANG: ENU
  locale-coding-system: cp1255

Major mode: Lisp Interaction

Minor modes in effect:
  tooltip-mode: t
  electric-indent-mode: t
  mouse-wheel-mode: t
  tool-bar-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  blink-cursor-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
M-x r e p o r t - e m <tab> C-g C-x C-f ~ / . e m <tab> 
<return> C-s h u n s <down> C-a C-SPC <down> <down> 
M-w C-x b <return> C-y <left> C-j <up> <up> <up> <up> 
<up> <up> <up> <C-right> <left> <left> M-$ <C-end> 
M-x i s p e l l - c h a <tab> <return> e n _ U S , 
e n _ M E D <return> <return> <backspace> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<return> M-x r e o p <backspace> <backspace> p o r 
t <tab> <return>

Recent messages:
Mark saved where search started
Mark set [2 times]
ispell-set-spellchecker-params: Missing hunspell equiv for "american". Skipping.
ispell-set-spellchecker-params: Missing hunspell equiv for "russian". Skipping.
Starting new Ispell process d:/usr/bin/hunspell.exe with default dictionary...
Checking spelling of THIS...
THIS is correct
Mark set
Ispell process killed
Local Ispell dictionary set to en_US

Load-path shadows:
None found.

Features:
(shadow sort gnus-util mail-extr emacsbug message format-spec rfc822 mml
easymenu mml-sec mm-decode mm-bodies mm-encode mail-parse rfc2231
mailabbrev gmm-utils mailheader sendmail rfc2047 rfc2045 ietf-drums
mm-util help-fns mail-prsvr mail-utils ispell misearch multi-isearch
time-date tooltip electric uniquify ediff-hook vc-hooks lisp-float-type
mwheel dos-w32 ls-lisp w32-common-fns disp-table w32-win w32-vars
tool-bar dnd fontset image regexp-opt fringe tabulated-list newcomment
lisp-mode prog-mode register page menu-bar rfn-eshadow timer select
scroll-bar mouse jit-lock font-lock syntax facemenu font-core frame cham
georgian utf-8-lang misc-lang vietnamese tibetan thai tai-viet lao
korean japanese hebrew greek romanian slovak czech european ethiopic
indian cyrillic chinese case-table epa-hook jka-cmpr-hook help simple
abbrev minibuffer nadvice loaddefs button faces cus-face macroexp files
text-properties overlay sha1 md5 base64 format env code-pages mule
custom widget hashtable-print-readable backquote make-network-process
w32notify w32 multi-tty emacs)

Memory information:
((conses 8 77953 7690)
 (symbols 32 17829 0)
 (miscs 32 49 225)
 (strings 16 12039 4341)
 (string-bytes 1 305893)
 (vectors 8 9699)
 (vector-slots 4 376089 5464)
 (floats 8 57 372)
 (intervals 28 405 238)
 (buffers 508 12))