summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Colascione <dancol@dancol.org>2018-06-09 18:12:15 -0700
committerDaniel Colascione <dancol@dancol.org>2018-06-09 18:14:03 -0700
commitcace203da108da4d281a99953a6fc71a18cde029 (patch)
tree6dd07dafbc063109c245acbba066d67bed90367c
parent3e3e23fb88fdc19e859c0aa2ab51b86afd323c71 (diff)
downloademacs-cace203da108da4d281a99953a6fc71a18cde029.tar.gz
Unbreak echoing
* src/keyboard.c (read_key_sequence): Don't echo_truncate the first time.
-rw-r--r--src/keyboard.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/keyboard.c b/src/keyboard.c
index bd9292c2652..c92684d3a3e 100644
--- a/src/keyboard.c
+++ b/src/keyboard.c
@@ -8964,6 +8964,9 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
the first time we remember a mouse event. */
Lisp_Object used_mouse_menu_history = Qnil;
+ /* Distinguish first time through from replay with mock_input == 0. */
+ bool is_replay = false;
+
/* If the sequence is unbound in submaps[], then
keybuf[fkey.start..fkey.end-1] is a prefix in Vfunction_key_map,
and fkey.map is its binding.
@@ -9072,8 +9075,9 @@ read_key_sequence (Lisp_Object *keybuf, int bufsize, Lisp_Object prompt,
/* These are no-ops the first time through, but if we restart, they
revert the echo area and this_command_keys to their original state. */
this_command_key_count = keys_start;
- if (INTERACTIVE)
+ if (INTERACTIVE && is_replay)
echo_truncate (echo_start);
+ is_replay = true;
/* If the best binding for the current key sequence is a keymap, or
we may be looking at a function key's escape sequence, keep on