Subject: 24.0.95; ispell.el sets incorrect encoding for the default dictionary
From: Eli Zaretskii <[email-masked]>
To: [email-masked]
Date: Sun, 08 Apr 2012 12:31:55 +0300
List-Id: <debbugs-submit.debbugs.gnu.org>

In ispell.el we see:

  (defvar ispell-dictionary-base-alist
    '((nil
       ;; The default dictionary.  It may be English.aff, or any other
       ;; dictionary depending on locale and such things.  We should probably
       ;; ask ispell what dictionary it's using, but until we do that, let's
       ;; just use an approximate regexp.
       "[[:alpha:]]" "[^[:alpha:]]" "[']" nil ("-B") nil iso-8859-1)

The iso-8859-1 part is not the optimal choice for aspell and hunspell.
These spell-checkers support UTF-8 encoding, so using utf-8 here will
DTRT in a much larger number of locales.  With iso-8859-1, any
non-Latin locale will require the user to customize
ispell-local-dictionary-alist, when there's no real reason for forcing
them do that.

Please include some simple logic to use utf-8 with the default
dictionary, when the speller is aspell or hunspell.

In GNU Emacs 24.0.95.1 (i386-mingw-nt5.1.2600)
 of 2012-04-02 on HOME-C4E4A596F7
Windowing system distributor `Microsoft Corp.', version 5.1.2600
Configured using:
 `configure --with-gcc (3.4)'

Important settings:
  value of $LC_ALL: nil
  value of $LC_COLLATE: nil
  value of $LC_CTYPE: nil
  value of $LC_MESSAGES: nil
  value of $LC_MONETARY: nil
  value of $LC_NUMERIC: nil
  value of $LC_TIME: nil
  value of $LANG: ENU
  value of $XMODIFIERS: nil
  locale-coding-system: cp1255
  default enable-multibyte-characters: t

Major mode: Mail

Minor modes in effect:
  diff-auto-refine-mode: t
  flyspell-mode: t
  desktop-save-mode: t
  show-paren-mode: t
  display-time-mode: t
  tooltip-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
  temp-buffer-resize-mode: t
  line-number-mode: t
  abbrev-mode: t

Recent input:
M-z M-z M-z M-z M-z M-z M-z M-z M-z C-z C-z C-z C-z 
C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z 
C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z 
C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z 
C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z 
C-z C-z C-z C-z C-z C-z M-z M-z M-z M-z M-z M-z M-z 
M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z 
M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z 
M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z 
M-z M-z M-z M-z M-z C-x k <return> C-x k <return> C-x 
k <return> C-x k <return> <switch-frame> M-z M-z M-z 
M-z M-z <C-home> <next> <next> <next> <next> <next> 
<next> <next> <next> <next> <next> <next> <next> <next> 
<next> <next> <next> <next> <next> M-z M-z M-z M-z 
M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z C-x C-x M-z 
M-z M-z M-z M-z <up> <up> <up> <left> <help-echo> <help-echo> 
<switch-frame> C-u 1 C-h i i d o l i s t <return> <switch-frame> 
<help-echo> <switch-frame> M-z M-z M-z M-z M-z M-z 
M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z M-z 
M-z M-z M-z M-z M-z M-z M-z M-z C-z C-z C-z C-z C-z 
C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z 
C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z C-z 
C-z C-z C-z C-z <help-echo> <help-echo> <help-echo> 
<help-echo> <switch-frame> <help-echo> <switch-frame> 
<help-echo> <help-echo> <help-echo> <help-echo> <help-echo> 
<help-echo> <switch-frame> <help-echo> <help-echo> 
<switch-frame> <switch-frame> <switch-frame> <switch-frame> 
<help-echo> <switch-frame> <switch-frame> <help-echo> 
M-x r e p o r t - e m <tab> <return>

Recent messages:
Parsing archive file...done.
Mark saved where search started [4 times]
Mark set
Mark saved where search started [4 times]
Parsing archive file...done.
Mark saved where search started [7 times]
Parsing archive file...done.
Mark saved where search started
Mark set
Found `dolist' in Index.  (Only match)

Load-path shadows:
None found.

Features:
(shadow emacsbug pp descr-text smerge-mode timezone rmailsort
mule-util ebuff-menu electric vc-dispatcher etags dabbrev help-mode
view multi-isearch network-stream starttls tls smtpmail auth-source
eieio assoc gnus-util password-cache mailalias sendmail rmailout
ld-script dired-x dired tcl nxml-uchnm rng-xsd xsd-regexp rng-cmpct
rng-nxml rng-valid rng-loc rng-uri rng-parse nxml-parse rng-match
rng-dt rng-util rng-pttrn nxml-ns nxml-mode nxml-outln nxml-rap
nxml-util nxml-glyph nxml-enc xmltok sgml-mode face-remap org-wl
org-w3m org-vm org-rmail org-mhe org-mew org-irc org-jsinfo org-infojs
org-html org-exp ob-exp org-exp-blocks find-func org-agenda org-info
org-gnus org-docview org-bibtex bibtex org-bbdb org byte-opt warnings
bytecomp byte-compile cconv macroexp advice help-fns advice-preload
ob-emacs-lisp ob-tangle ob-ref ob-lob ob-table org-footnote org-src
ob-comint ob-keys ob ob-eval org-pcomplete pcomplete org-list
org-faces org-compat org-entities org-macs cal-menu calendar
cal-loaddefs noutline outline arc-mode archive-mode diff-mode
conf-mode newcomment sh-script executable generic jka-compr make-mode
autorevert gud easy-mmode comint ansi-color ring parse-time vc-cvs
cc-mode cc-fonts cc-guess cc-menus cc-cmds cc-styles cc-align
cc-engine cc-vars cc-defs info texinfo regexp-opt vc-bzr flyspell
ispell add-log qp rmailsum rmailmm message format-spec rfc822 mml
mml-sec mm-decode mm-bodies mm-encode mailabbrev gmm-utils mailheader
mail-parse rfc2231 rmail rfc2047 rfc2045 ietf-drums mm-util mail-prsvr
mail-utils desktop server filecache mairix cus-edit easymenu cus-start
cus-load wid-edit saveplace midnight generic-x paren battery time
time-date tooltip ediff-hook vc-hooks lisp-float-type mwheel dos-w32
disp-table ls-lisp w32-win w32-vars tool-bar dnd fontset image fringe
lisp-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 loaddefs button faces cus-face files text-properties
overlay sha1 md5 base64 format env code-pages mule custom widget
hashtable-print-readable backquote make-network-process multi-tty
emacs)