unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
* bug#16702: 24.3.50; flyspell in message mode messes up latin prefix input
@ 2014-02-09 17:16 Ivan Kanis
  2014-02-11 18:41 ` Agustin Martin
  0 siblings, 1 reply; 6+ messages in thread
From: Ivan Kanis @ 2014-02-09 17:16 UTC (permalink / raw)
  To: 16702

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@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)





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#16702: 24.3.50; flyspell in message mode messes up latin prefix input
  2014-02-09 17:16 bug#16702: 24.3.50; flyspell in message mode messes up latin prefix input Ivan Kanis
@ 2014-02-11 18:41 ` Agustin Martin
  2014-02-12 21:36   ` Glenn Morris
  0 siblings, 1 reply; 6+ messages in thread
From: Agustin Martin @ 2014-02-11 18:41 UTC (permalink / raw)
  To: Ivan Kanis, 16702

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





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#16702: 24.3.50; flyspell in message mode messes up latin prefix input
  2014-02-11 18:41 ` Agustin Martin
@ 2014-02-12 21:36   ` Glenn Morris
  2014-02-12 22:04     ` Glenn Morris
  2014-02-13 16:26     ` Eli Zaretskii
  0 siblings, 2 replies; 6+ messages in thread
From: Glenn Morris @ 2014-02-12 21:36 UTC (permalink / raw)
  To: Agustin Martin; +Cc: Ivan Kanis, 16702

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? )





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#16702: 24.3.50; flyspell in message mode messes up latin prefix input
  2014-02-12 21:36   ` Glenn Morris
@ 2014-02-12 22:04     ` Glenn Morris
  2014-02-13 16:26     ` Eli Zaretskii
  1 sibling, 0 replies; 6+ messages in thread
From: Glenn Morris @ 2014-02-12 22:04 UTC (permalink / raw)
  To: Agustin Martin; +Cc: Ivan Kanis, 16702


PS loading 24.3's flyspell.el in current trunk does not help, so it's
not a change in flyspell.el causing this.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#16702: 24.3.50; flyspell in message mode messes up latin prefix input
  2014-02-12 21:36   ` Glenn Morris
  2014-02-12 22:04     ` Glenn Morris
@ 2014-02-13 16:26     ` Eli Zaretskii
  2014-02-13 17:17       ` Stefan Monnier
  1 sibling, 1 reply; 6+ messages in thread
From: Eli Zaretskii @ 2014-02-13 16:26 UTC (permalink / raw)
  To: Glenn Morris, Stefan Monnier; +Cc: agustin.martin, ivan, 16702

> From: Glenn Morris <rgm@gnu.org>
> Date: Wed, 12 Feb 2014 16:36:31 -0500
> Cc: Ivan Kanis <ivan@tao.kanis.fr>, 16702@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.





^ permalink raw reply	[flat|nested] 6+ messages in thread

* bug#16702: 24.3.50; flyspell in message mode messes up latin prefix input
  2014-02-13 16:26     ` Eli Zaretskii
@ 2014-02-13 17:17       ` Stefan Monnier
  0 siblings, 0 replies; 6+ messages in thread
From: Stefan Monnier @ 2014-02-13 17:17 UTC (permalink / raw)
  To: Eli Zaretskii; +Cc: ivan, 16702, agustin.martin

> 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





^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2014-02-13 17:17 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2014-02-09 17:16 bug#16702: 24.3.50; flyspell in message mode messes up latin prefix input Ivan Kanis
2014-02-11 18:41 ` Agustin Martin
2014-02-12 21:36   ` Glenn Morris
2014-02-12 22:04     ` Glenn Morris
2014-02-13 16:26     ` Eli Zaretskii
2014-02-13 17:17       ` Stefan Monnier

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).