]> git.eshelyaron.com Git - emacs.git/commitdiff
Unbreak echoing
authorDaniel Colascione <dancol@dancol.org>
Sun, 10 Jun 2018 01:12:15 +0000 (18:12 -0700)
committerDaniel Colascione <dancol@dancol.org>
Sun, 10 Jun 2018 01:14:03 +0000 (18:14 -0700)
* src/keyboard.c (read_key_sequence): Don't echo_truncate the first time.

src/keyboard.c

index bd9292c26520303160413ee6392bece35e4be729..c92684d3a3e7861cbba096c053ec60f0d36fe4a7 100644 (file)
@@ -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