unofficial mirror of bug-gnu-emacs@gnu.org 
 help / color / mirror / code / Atom feed
From: Noam Postavsky <npostavs@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: 32257@debbugs.gnu.org, andrewjmoreton@gmail.com
Subject: bug#32257: 26.1; read-multiple-choice inf loops on mouse clicks
Date: Mon, 30 Jul 2018 21:52:40 -0400	[thread overview]
Message-ID: <87sh40189j.fsf@gmail.com> (raw)
In-Reply-To: <837elgss8l.fsf@gnu.org> (Eli Zaretskii's message of "Fri, 27 Jul 2018 16:50:02 +0300")

Eli Zaretskii <eliz@gnu.org> writes:

>> >> > If we want this change on emacs-26, we should carefully audit all the
>> >> > other users of rmc.el
>> 
>> What should we check for though?
>
> Anything that read-event handles differently from read-char.  Maybe a
> good starting point is to compile a list of the differences in
> behavior between the two.

Looking at the implementation, they both delegate to
read_filtered_event, but read-char passes 1 for the first three args,
where read-event passes 0.

   If NO_SWITCH_FRAME, switch-frame events are stashed
   until we get a character we like, and then stuffed into
   unread_switch_frame.

   If ASCII_REQUIRED, check function key events to see
   if the unmodified version of the symbol has a Qascii_character
   property, and use that character, if present.

   If ERROR_NONASCII, signal an error if the input we
   get isn't an ASCII character with modifiers.  If it's false but
   ASCII_REQUIRED is true, just re-read until we get an ASCII
   character.

Another possibility is to use read-char-exclusive which only changes
ERROR_NON_ASCII to 0.  The downside is that when there are mouse clicks
it prints the events into the minibuffer, covering the prompt (but
typing "?"  still works to restore the prompt).

--- i/lisp/emacs-lisp/rmc.el
+++ w/lisp/emacs-lisp/rmc.el
@@ -118,7 +118,7 @@ read-multiple-choice
                             choices)))
                   (condition-case nil
                       (let ((cursor-in-echo-area t))
-                        (read-char))
+                        (read-char-exclusive))
                     (error nil))))
           (setq answer (lookup-key query-replace-map (vector tchar) t))
           (setq tchar





  reply	other threads:[~2018-07-31  1:52 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-07-24 12:05 bug#32257: 26.1; read-multiple-choice inf loops on mouse clicks Noam Postavsky
2018-07-26  1:25 ` Noam Postavsky
2018-07-27  9:08   ` Eli Zaretskii
2018-07-27 11:35     ` Andy Moreton
2018-07-27 12:30       ` Eli Zaretskii
2018-07-27 12:45         ` Noam Postavsky
2018-07-27 13:50           ` Eli Zaretskii
2018-07-31  1:52             ` Noam Postavsky [this message]
2018-07-31 11:59               ` Andy Moreton
2018-07-31 12:27                 ` martin rudalics
2018-07-31 12:38                   ` Andy Moreton
2018-08-01  8:44                     ` martin rudalics
2018-08-01 12:30                       ` Noam Postavsky
2018-08-01 12:57                       ` Robert Pluim
2018-08-02  7:09                         ` martin rudalics
2018-08-01 20:55                       ` Live System User
2018-08-02  7:09                         ` martin rudalics
2018-07-31 16:06                 ` Eli Zaretskii
2018-07-31 19:26                   ` Andy Moreton
2018-08-01  5:27                     ` Eli Zaretskii
2018-07-31 16:04               ` Eli Zaretskii
2018-07-31 19:29                 ` Andy Moreton
2018-08-01  5:29                   ` Eli Zaretskii
2018-08-01 12:05                     ` Andy Moreton
2019-05-22  0:52                       ` Noam Postavsky
2019-05-22 10:08                         ` Eli Zaretskii
2019-05-26 12:57                           ` Noam Postavsky

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.gnu.org/software/emacs/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=87sh40189j.fsf@gmail.com \
    --to=npostavs@gmail.com \
    --cc=32257@debbugs.gnu.org \
    --cc=andrewjmoreton@gmail.com \
    --cc=eliz@gnu.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).