Subject: 24.3.50; flyspell-mode garbles accents in terminal clients
From: Stefano Zacchiroli <[email-masked]>
To: [email-masked]
Date: Thu, 04 Jul 2013 00:19:29 +0200
List-Id: <debbugs-submit.debbugs.gnu.org>

Consider the following 3 lines:

  conférence
  confÃ\251rence
  conférence

all 3 have been inserted typing exactly the same characters in a
terminal emacsclient (i.e. emacsclient -t)

- the first on, which shows the expected behavior, has been obtained
  with flyspell-mode turned off

- the second one, with garbled characters near the attempt to insert the
  character "é" (letter "e" with an acute accent on top), has been
  obtained with flyspell-mode turned on

- the third one has been obtained with flyspell-mode turned on, but by
  typing "confe" (without accent), then hitting backspace, then
  restarting with "é" (letter "e" with accent). I.e. it seems that
  accented letters at the beginning of words / after spaces are fine,
  whereas they garble the input when they're in the middle or at the end
  of words

The problem does not manifest itself in GUI clients (i.e. emacsclient
-c) or in stand-alone Emacs instances that do not use Emacs server.

Cheers.

PS whereas I do use viper mode, and I'm using it to report this bug, I
   can reproduce the bug using "emacs -Q", then activating server-mode
   in it, and connecting terminal-based emacsclients.

In GNU Emacs 24.3.50.1 (x86_64-pc-linux-gnu, GTK+ Version 3.8.2)
 of 2013-07-01 on dex, modified by Debian
 (emacs-snapshot package, version 2:20130701-1)
Windowing system distributor `The X.Org Foundation', version 11.0.11204000
System Description:	Debian GNU/Linux unstable (sid)

Configured using:
 `configure --build x86_64-linux-gnu --host x86_64-linux-gnu
 --prefix=/usr --sharedstatedir=/var/lib --libexecdir=/usr/lib
 --localstatedir=/var --infodir=/usr/share/info --mandir=/usr/share/man
 --with-pop=yes
 --enable-locallisppath=/etc/emacs-snapshot:/etc/emacs:/usr/local/share/emacs/24.3.50/site-lisp:/usr/local/share/emacs/site-lisp:/usr/share/emacs/24.3.50/site-lisp:/usr/share/emacs/site-lisp
 --without-compress-info --with-crt-dir=/usr/lib/x86_64-linux-gnu/
 --with-x=yes --with-x-toolkit=gtk3 --with-imagemagick=yes
 CFLAGS='-DDEBIAN -DSITELOAD_PURESIZE_EXTRA=5000 -g -O2'
 CPPFLAGS='-D_FORTIFY_SOURCE=2' LDFLAGS='-g -Wl,--as-needed
 -znocombreloc''

Important settings:
  value of $LC_MESSAGES: en_US.UTF-8
  value of $LC_MONETARY: it_IT.utf8
  value of $LC_NUMERIC: it_IT.utf8
  value of $LC_TIME: it_IT.utf8
  value of $LANG: en_US.UTF-8
  locale-coding-system: utf-8-unix
  default enable-multibyte-characters: t

Major mode: Lisp Interaction

Minor modes in effect:
  shell-dirtrack-mode: t
  flyspell-mode: t
  winner-mode: t
  show-paren-mode: t
  tooltip-mode: t
  mouse-wheel-mode: t
  menu-bar-mode: t
  file-name-shadow-mode: t
  global-font-lock-mode: t
  font-lock-mode: t
  auto-composition-mode: t
  auto-encryption-mode: t
  auto-compression-mode: t
  column-number-mode: t
  line-number-mode: t
  transient-mark-mode: t

Recent input:
RET C h e e r s . ESC ESC < C-x C-s j j j ESC [ 6 ~ 
ESC [ 6 ~ ESC [ 5 ~ ESC < j j j C-x C-s A ESC x C-g 
C-g C-x C-s C-x C-s C-x # ESC [ > 1 ; 3 4 0 6 ; 0 c 
i p e r c h é RET ESC x f l y s p TAB C-g DEL DEL DEL 
DEL DEL DEL DEL DEL c o n f é r e n c e SPC DEL RET 
ESC x f l s p DEL DEL u s DEL DEL y s p TAB m o TAB 
RET C-c d f r RET c o n f Ã  e n c e ESC 0 o c 
o n f Ã  e n c e DEL DEL DEL DEL DEL DEL DEL DEL 
f SPC DEL é r e n c e ESC j j i c o n f ` DEL é DEL 
e DEL é r e n c e ESC d d C-x C-c j d d . . i c o n 
f é r e n c e <return> M-x C-g <backspace> a SPC <backspace> 
<backspace> <return> c o n f é r e n c e <escape> u 
j j j j j l l C-l M-x r e p o r t <tab> b <tab> <return> 
C-g M-x b u <tab> g <tab> <backspace> <backspace> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> <backspace> <backspace> <backspace> <backspace> 
<backspace> r e p o r t - e m a <tab> <return> f l 
y s p e l l - m o d e SPC i n SPC <switch-frame> C-g 
C-x C-c C-g M-x <up> <return>

Recent messages:
Undo!
line-move-1: End of buffer [5 times]
call-interactively: End of buffer [2 times]
Making completion list...
Quit
Making completion list...
Back to top level.
When done with this frame, type C-x 5 0
Quit
(No files need saving)
Quit

Load-path shadows:
/usr/share/emacs/24.3.50/site-lisp/cmake-data/cmake-mode hides /usr/share/emacs/site-lisp/cmake-mode
/usr/share/emacs/24.3.50/site-lisp/puppet-el/puppet-mode hides /usr/share/emacs/site-lisp/puppet-mode
/home/zack/.emacs.d/elpa/tabulated-list-20120406.2251/tabulated-list hides /usr/share/emacs/24.3.50/lisp/emacs-lisp/tabulated-list
/usr/share/emacs-snapshot/site-lisp/auctex/tex-info hides /usr/share/emacs/site-lisp/auctex/tex-info
/usr/share/emacs-snapshot/site-lisp/auctex/tex-mik hides /usr/share/emacs/site-lisp/auctex/tex-mik
/usr/share/emacs-snapshot/site-lisp/auctex/context-nl hides /usr/share/emacs/site-lisp/auctex/context-nl
/usr/share/emacs-snapshot/site-lisp/auctex/font-latex hides /usr/share/emacs/site-lisp/auctex/font-latex
/usr/share/emacs-snapshot/site-lisp/auctex/tex hides /usr/share/emacs/site-lisp/auctex/tex
/usr/share/emacs-snapshot/site-lisp/auctex/context hides /usr/share/emacs/site-lisp/auctex/context
/usr/share/emacs-snapshot/site-lisp/auctex/tex-font hides /usr/share/emacs/site-lisp/auctex/tex-font
/usr/share/emacs-snapshot/site-lisp/auctex/plain-tex hides /usr/share/emacs/site-lisp/auctex/plain-tex
/usr/share/emacs-snapshot/site-lisp/auctex/multi-prompt hides /usr/share/emacs/site-lisp/auctex/multi-prompt
/usr/share/emacs-snapshot/site-lisp/auctex/latex hides /usr/share/emacs/site-lisp/auctex/latex
/usr/share/emacs-snapshot/site-lisp/auctex/tex-style hides /usr/share/emacs/site-lisp/auctex/tex-style
/usr/share/emacs-snapshot/site-lisp/auctex/preview hides /usr/share/emacs/site-lisp/auctex/preview
/usr/share/emacs-snapshot/site-lisp/auctex/prv-emacs hides /usr/share/emacs/site-lisp/auctex/prv-emacs
/usr/share/emacs-snapshot/site-lisp/auctex/tex-buf hides /usr/share/emacs/site-lisp/auctex/tex-buf
/usr/share/emacs-snapshot/site-lisp/auctex/tex-jp hides /usr/share/emacs/site-lisp/auctex/tex-jp
/usr/share/emacs-snapshot/site-lisp/auctex/tex-bar hides /usr/share/emacs/site-lisp/auctex/tex-bar
/usr/share/emacs-snapshot/site-lisp/auctex/context-en hides /usr/share/emacs/site-lisp/auctex/context-en
/usr/share/emacs-snapshot/site-lisp/auctex/tex-fold hides /usr/share/emacs/site-lisp/auctex/tex-fold
/usr/share/emacs-snapshot/site-lisp/auctex/toolbar-x hides /usr/share/emacs/site-lisp/auctex/toolbar-x
/usr/share/emacs-snapshot/site-lisp/auctex/bib-cite hides /usr/share/emacs/site-lisp/auctex/bib-cite
/usr/share/emacs-snapshot/site-lisp/auctex/texmathp hides /usr/share/emacs/site-lisp/auctex/texmathp

Features:
(shadow sort mail-extr emacsbug message rfc822 mml mml-sec mm-decode
mm-bodies mm-encode mail-parse rfc2231 mailabbrev gmm-utils mailheader
todoo markdown-mode cl lbdb sh-script smie executable conf-mode
help-mode imenu debian-bug debian-copyright debian-changelog-mode
add-log debian-control-mode python rx tramp tramp-compat auth-source
eieio eieio-core password-cache tramp-loaddefs trampver shell hippie-exp
thingatpt pp icalendar diary-lib diary-loaddefs org-wl org-w3m org-vm
org-rmail org-mhe org-mew org-irc org-jsinfo org-infojs org-html
org-info org-gnus gnus-util org-docview org-bibtex bibtex org-bbdb
org-icalendar org-exp ob-exp org-exp-blocks org-agenda vc-git misearch
multi-isearch tabify rect flyspell ispell sendmail rfc2047 rfc2045
ietf-drums mm-util mail-prsvr mail-utils xterm server
edit-server-autoloads evil-autoloads evil-numbers-autoloads
moinmoin-mode-autoloads rainbow-mode-autoloads screen-lines-autoloads
tabulated-list-autoloads undo-tree-autoloads package org-crypt
org-protocol org byte-opt warnings bytecomp byte-compile cconv ob-tangle
ob-ref ob-lob ob-table org-footnote org-src ob-comint ob-keys
org-pcomplete pcomplete comint ansi-color org-list org-faces
org-entities noutline outline org-version ob-emacs-lisp ob org-compat
org-macs ob-eval org-loaddefs format-spec find-func cal-menu easymenu
calendar cal-loaddefs windmove winner ido uniquify midnight time-date
paren cus-start cus-load viper edmacro kmacro nadvice viper-ex
viper-macs viper-mous viper-cmd viper-keym ring viper-util viper-init
advice help-fns debian-el debian-el-loaddefs scala-mode-auto
emacs-goodies-el emacs-goodies-custom emacs-goodies-loaddefs easy-mmode
dpkg-dev-el dpkg-dev-el-loaddefs devhelp preview-latex tex-site
auto-loads cl-macs gv cl-loaddefs cl-lib tooltip ediff-hook vc-hooks
lisp-float-type mwheel x-win x-dnd 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 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 dbusbind gfilenotify dynamic-setting
system-font-setting font-render-setting move-toolbar gtk x-toolkit x
multi-tty emacs)

-- 
Stefano Zacchiroli  . . . . . . .  [email-masked] . . . . o . . . o . o
Maître de conférences . . . . . http://upsilon.cc/zack . . . o . . . o o
Former Debian Project Leader  . . @zack on identi.ca . . o o o . . . o .
« the first rule of tautology club is the first rule of tautology club »