Don't output spurious prefixes in read-char-exclusive
* src/keyboard.c (read_char): Don't touch the echo area if Vecho_keystrokes is nil. * src/lread.c (read_filtered_event): Bind echo_keystrokes to nil to avoid outputting prefixes we're not going to act on anyway (bug#19718).
This commit is contained in:
parent
7e653ee73f
commit
701ec0bda2
2 changed files with 14 additions and 8 deletions
|
@ -3059,12 +3059,13 @@ read_char (int commandflag, Lisp_Object map,
|
|||
|
||||
/* Now wipe the echo area, except for help events which do their
|
||||
own stuff with the echo area. */
|
||||
if (!CONSP (c)
|
||||
|| (!(EQ (Qhelp_echo, XCAR (c)))
|
||||
&& !(EQ (Qswitch_frame, XCAR (c)))
|
||||
/* Don't wipe echo area for select window events: These might
|
||||
get delayed via `mouse-autoselect-window' (Bug#11304). */
|
||||
&& !(EQ (Qselect_window, XCAR (c)))))
|
||||
if (!NILP (Vecho_keystrokes)
|
||||
&& (!CONSP (c)
|
||||
|| (!(EQ (Qhelp_echo, XCAR (c)))
|
||||
&& !(EQ (Qswitch_frame, XCAR (c)))
|
||||
/* Don't wipe echo area for select window events: These might
|
||||
get delayed via `mouse-autoselect-window' (Bug#11304). */
|
||||
&& !(EQ (Qselect_window, XCAR (c))))))
|
||||
{
|
||||
if (!NILP (echo_area_buffer[0]))
|
||||
{
|
||||
|
|
|
@ -705,8 +705,13 @@ read_filtered_event (bool no_switch_frame, bool ascii_required,
|
|||
/* Read until we get an acceptable event. */
|
||||
retry:
|
||||
do
|
||||
val = read_char (0, Qnil, (input_method ? Qnil : Qt), 0,
|
||||
NUMBERP (seconds) ? &end_time : NULL);
|
||||
{
|
||||
ptrdiff_t count = SPECPDL_INDEX ();
|
||||
specbind (Qecho_keystrokes, Qnil);
|
||||
val = read_char (0, Qnil, (input_method ? Qnil : Qt), 0,
|
||||
NUMBERP (seconds) ? &end_time : NULL);
|
||||
unbind_to (count, Qnil);
|
||||
}
|
||||
while (FIXNUMP (val) && XFIXNUM (val) == -2); /* wrong_kboard_jmpbuf */
|
||||
|
||||
if (BUFFERP (val))
|
||||
|
|
Loading…
Add table
Reference in a new issue