From: Daniel Colascione Date: Sun, 10 Jun 2018 01:12:15 +0000 (-0700) Subject: Unbreak echoing X-Git-Tag: emacs-27.0.90~4892 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=cace203da108da4d281a99953a6fc71a18cde029;p=emacs.git Unbreak echoing * src/keyboard.c (read_key_sequence): Don't echo_truncate the first time. --- 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