GNU bug report logs - #16702
24.3.50; flyspell in message mode messes up latin prefix input

Previous Next

Package: emacs;

Reported by: ivan <at> kanis.fr

Date: Sun, 9 Feb 2014 18:57:02 UTC

Severity: normal

Merged with 15614, 16701

Found in version 24.3.50

Done: Stefan Monnier <monnier <at> iro.umontreal.ca>

Bug is archived. No further changes may be made.

To add a comment to this bug, you must first unarchive it, by sending
a message to control AT debbugs.gnu.org, with unarchive 16702 in the body.
You can then email your comments to 16702 AT debbugs.gnu.org in the normal way.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-gnu-emacs <at> gnu.org:
bug#16702; Package emacs. (Sun, 09 Feb 2014 18:57:02 GMT) Full text and rfc822 format available.

Acknowledgement sent to Ivan Kanis <ivan <at> tao.kanis.fr>:
New bug report received and forwarded. Copy sent to bug-gnu-emacs <at> gnu.org. (Sun, 09 Feb 2014 18:57:02 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):

From: Ivan Kanis <ivan <at> tao.kanis.fr>
To: bug-gnu-emacs <at> gnu.org
Subject: 24.3.50; flyspell in message mode messes up latin prefix input
Date: Sun, 09 Feb 2014 18:16:51 +0100
1) emacs -Q
2) eval the following in *scratch*

(add-hook 'message-signature-setup-hook (lambda () (flyspell-mode 1)))

3) M-x gnus-msg-mail
4) C-\ latin-prefix
5) d'

I expect a ' with a underscore instead I get the following in the echo
area:

' '[ 'AEIOUWYaeiouwy]

I don't have the ispell program installed, I use aspell instead.

In GNU Emacs 24.3.50.1 (i686-pc-linux-gnu, GTK+ Version 2.24.20)
 of 2014-02-08 on tao.kanis.fr
Repository revision: 116348 michael.albinus <at> gmx.de-20140208133515-mgy8agwqq4nc6bfb
Windowing system distributor `The X.Org Foundation', version 11.0.11403000
System Description:	Ubuntu 13.10

Configured using:
 `configure --prefix=/home/ivan/emacs-bzr --without-compress-install
 'CFLAGS=-g -DSYSTEM_PURESIZE_EXTRA=1000000''

Important settings:
  value of $LANG: en_US.UTF8
  locale-coding-system: utf-8-unix

Major mode: Message

Minor modes in effect:
  flyspell-mode: t
  mml-mode: t
  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
  auto-fill-function: message-do-auto-fill
  transient-mark-mode: t
  abbrev-mode: t

Recent input:
C-y H-i H-i H-i H-i <up> <up> <up> C-e C-x C-e <down> 
<down> C-e C-x C-e M-x g n u s m s <backspace> <backspace> 
- s m <backspace> <backspace> m s <tab> <return> C-\ 
j a <tab> <return> g e n k i SPC <return> g M-x r e 
p <tab> o <tab> r <tab> <return>

Recent messages:
H-i is undefined [4 times]
ivan-message-setup
(ivan-message-setup)
Gnus not running; using plain Message mode
Mark set
Starting new Ispell process /usr/bin/aspell with default dictionary...
Loading quail/japanese...done
Loading /home/ivan/.kkcrc...done
Loading ja-dic/ja-dic...done
Making completion list... [2 times]

Load-path shadows:
None found.

Features:
(shadow sort mail-extr emacsbug sendmail ja-dic mule-util cus-start
cus-load japan-util kkc ja-dic-utl quail help-mode hashcash flyspell
ispell gnus-msg gnus-art mm-uu mml2015 epg-config mm-view mml-smime
smime password-cache dig mailcap gnus-sum nnoo gnus-group gnus-undo
nnmail mail-source gnus-start gnus-spec gnus-int gnus-range gnus-win
message format-spec rfc822 mml easymenu mml-sec mm-decode mm-bodies
mm-encode mail-parse rfc2231 rfc2047 rfc2045 ietf-drums mailabbrev
gmm-utils mailheader gnus gnus-ems nnheader gnus-util mail-utils mm-util
help-fns mail-prsvr wid-edit cl-loaddefs cl-lib time-date tooltip
electric uniquify 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 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
dbusbind gfilenotify dynamic-setting system-font-setting
font-render-setting move-toolbar gtk x-toolkit x multi-tty emacs)




Changed bug submitter to 'ivan <at> kanis.fr' from 'Ivan Kanis <ivan <at> tao.kanis.fr>' Request was from Ivan Kanis <ivan <at> kanis.fr> to control <at> debbugs.gnu.org. (Tue, 11 Feb 2014 17:22:01 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16702; Package emacs. (Tue, 11 Feb 2014 18:43:01 GMT) Full text and rfc822 format available.

Message #10 received at 16702 <at> debbugs.gnu.org (full text, mbox):

From: Agustin Martin <agustin.martin <at> hispalinux.es>
To: Ivan Kanis <ivan <at> tao.kanis.fr>, 16702 <at> debbugs.gnu.org
Subject: Re: bug#16702: 24.3.50; flyspell in message mode messes up latin
 prefix input
Date: Tue, 11 Feb 2014 19:41:54 +0100
On Sun, Feb 09, 2014 at 06:16:51PM +0100, Ivan Kanis wrote:
> 1) emacs -Q
> 2) eval the following in *scratch*
> 
> (add-hook 'message-signature-setup-hook (lambda () (flyspell-mode 1)))
> 
> 3) M-x gnus-msg-mail
> 4) C-\ latin-prefix
> 5) d'
> 
> I expect a ' with a underscore instead I get the following in the echo
> area:
> 
> ' '[ 'AEIOUWYaeiouwy]
> 
> I don't have the ispell program installed, I use aspell instead.

Hi,

For the records I get the same result if I skip the step to enable
flyspell. Seems unrelated to flyspell.

Regards,

-- 
Agustin




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16702; Package emacs. (Wed, 12 Feb 2014 21:37:01 GMT) Full text and rfc822 format available.

Message #13 received at 16702 <at> debbugs.gnu.org (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: Agustin Martin <agustin.martin <at> hispalinux.es>
Cc: Ivan Kanis <ivan <at> tao.kanis.fr>, 16702 <at> debbugs.gnu.org
Subject: Re: bug#16702: 24.3.50;
 flyspell in message mode messes up latin prefix input
Date: Wed, 12 Feb 2014 16:36:31 -0500
Agustin Martin wrote:

> For the records I get the same result if I skip the step to enable
> flyspell.

I don't. (It does seem unrelated to gnus-msg-mail though, so not sure
why that was included in the description.)
    
    emacs -Q
    C-\ latin-prefix RET
    d'
      -> now displayed in the buffer "d" followed by "'" with underline.
         Echo area displays stuff you can input next.


Repeat with
    emacs -Q -f flyspell-mode

and just see "d" followed by nothing in the buffer, and one extra
element at the front of the echo area list.


It seems to be just a display issue, because the input method still
works (eg if you type "d'y", you get "d" followed by an accented "y".)

This is a change from 24.3.


(Also, this is fairly obviously a duplicate of
http://debbugs.gnu.org/16701; did it really need two reports? )




Merged 16701 16702. Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Wed, 12 Feb 2014 21:37:02 GMT) Full text and rfc822 format available.

Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16702; Package emacs. (Wed, 12 Feb 2014 22:05:02 GMT) Full text and rfc822 format available.

Message #18 received at 16702 <at> debbugs.gnu.org (full text, mbox):

From: Glenn Morris <rgm <at> gnu.org>
To: Agustin Martin <agustin.martin <at> hispalinux.es>
Cc: Ivan Kanis <ivan <at> tao.kanis.fr>, 16702 <at> debbugs.gnu.org
Subject: Re: bug#16702: 24.3.50;
 flyspell in message mode messes up latin prefix input
Date: Wed, 12 Feb 2014 17:04:26 -0500
PS loading 24.3's flyspell.el in current trunk does not help, so it's
not a change in flyspell.el causing this.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16702; Package emacs. (Thu, 13 Feb 2014 16:27:02 GMT) Full text and rfc822 format available.

Message #21 received at 16702 <at> debbugs.gnu.org (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Glenn Morris <rgm <at> gnu.org>, Stefan Monnier <monnier <at> iro.umontreal.ca>
Cc: agustin.martin <at> hispalinux.es, ivan <at> tao.kanis.fr, 16702 <at> debbugs.gnu.org
Subject: Re: bug#16702: 24.3.50;
 flyspell in message mode messes up latin prefix input
Date: Thu, 13 Feb 2014 18:26:25 +0200
> From: Glenn Morris <rgm <at> gnu.org>
> Date: Wed, 12 Feb 2014 16:36:31 -0500
> Cc: Ivan Kanis <ivan <at> tao.kanis.fr>, 16702 <at> debbugs.gnu.org
> 
>     emacs -Q
>     C-\ latin-prefix RET
>     d'
>       -> now displayed in the buffer "d" followed by "'" with underline.
>          Echo area displays stuff you can input next.
> 
> 
> Repeat with
>     emacs -Q -f flyspell-mode
> 
> and just see "d" followed by nothing in the buffer, and one extra
> element at the front of the echo area list.
> 
> 
> It seems to be just a display issue, because the input method still
> works (eg if you type "d'y", you get "d" followed by an accented "y".)

I see the same symptoms, but I don't think it's a display issue.  I
think it's an issue with how we read events in sit-for.

The problem seems to be with this code in flyspell (part of
flyspell-check-word-p):

      (cond
       ((get this-command 'flyspell-deplacement)
	(not (eq flyspell-previous-command this-command)))
       ((get this-command 'flyspell-delayed)
	;; The current command is not delayed, that
	;; is that we must check the word now.
	(and (not unread-command-events) <<<<<<<<<<<<<<<<<<<
	     (sit-for flyspell-delay)))  <<<<<<<<<<<<<<<<<<<
       (t t)))

This is Flyspell giving the user a chance to take a short break while
typing a word, and avoid spell-checking incomplete words.  If you
customize flyspell-delay to zero, the problem goes away.

The change that introduced this bug is the following portion of
revision 113293:

  -    (let ((read (read-event nil nil seconds)))
  +    ;; FIXME: we should not read-event here at all, because it's much too
  +    ;; difficult to reliably "undo" a read-event by pushing it onto
  +    ;; unread-command-events.
  +    (let ((read (read-event nil t seconds)))

We now call read-event with 2nd arg t instead of nil.  If I revert
this single change, the problem goes away even without zeroing out
flyspell-delay.

Of course, I'm not saying we should actually revert this change: it
was done for a reason.  But hopefully, Stefan, who made that change,
will know how to fix this problem, which is that asking sit-for to
read events while inheriting the input method sometimes isn't TRT.




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16702; Package emacs. (Thu, 13 Feb 2014 17:18:02 GMT) Full text and rfc822 format available.

Message #24 received at 16702 <at> debbugs.gnu.org (full text, mbox):

From: Stefan Monnier <monnier <at> iro.umontreal.ca>
To: Eli Zaretskii <eliz <at> gnu.org>
Cc: Glenn Morris <rgm <at> gnu.org>, ivan <at> tao.kanis.fr, 16702 <at> debbugs.gnu.org,
 agustin.martin <at> hispalinux.es
Subject: Re: bug#16702: 24.3.50;
 flyspell in message mode messes up latin prefix input
Date: Thu, 13 Feb 2014 12:17:14 -0500
> Of course, I'm not saying we should actually revert this change: it
> was done for a reason.

The reason was another interaction with the same sit-for in flyspell,
where the event read needed to be read while inheriting input method.

We fundamentally have two bugs:
- sit-for shouldn't use read-event: as noted it's impossible to
  undo it via unread-command-events.
- flyspell shouldn't use sit-for: it should return immediately and start
  a timer to do the delayed check.


        Stefan




Information forwarded to bug-gnu-emacs <at> gnu.org:
bug#16702; Package emacs. (Fri, 14 Feb 2014 01:44:02 GMT) Full text and rfc822 format available.

Message #27 received at 16702 <at> debbugs.gnu.org (full text, mbox):

From: Sébastien Gross <seb <at> chezwam.org>
To: 15614 <at> debbugs.gnu.org, 16702 <at> debbugs.gnu.org
Subject: Re: bug#15614: Acknowledgement (24.3.50;
 conflict between quail and flyspell)
Date: Fri, 14 Feb 2014 02:42:35 +0100

Hi,

I guess both #15614[1] and #16702[2] are related. I experienced the same
issue.


Hope that help.


[1] http://lists.gnu.org/archive/html/bug-gnu-emacs/2013-10/msg00417.html
[2] http://lists.gnu.org/archive/html/bug-gnu-emacs/2014-02/msg00712.html
-- 
Sébastien Gross




Merged 15614 16701 16702. Request was from Glenn Morris <rgm <at> gnu.org> to control <at> debbugs.gnu.org. (Fri, 14 Feb 2014 01:47:02 GMT) Full text and rfc822 format available.

bug closed, send any further explanations to 15614 <at> debbugs.gnu.org and Sébastien Gross <seb <at> chezwam.org> Request was from Stefan Monnier <monnier <at> iro.umontreal.ca> to control <at> debbugs.gnu.org. (Thu, 29 May 2014 16:44:04 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <help-debbugs <at> gnu.org> to internal_control <at> debbugs.gnu.org. (Tue, 01 Jul 2014 11:24:03 GMT) Full text and rfc822 format available.

This bug report was last modified 10 years and 357 days ago.

Previous Next


GNU bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.