Mercurial > emacs
changeset 13267:12d329dd9940
(read_char): If we reread a char, the next pause
can start echoing despite a remaining echo area message.
(ok_to_echo_at_next_pause): New variable.
(cancel_echoing): Clear ok_to_echo_at_next_pause.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Sat, 21 Oct 1995 23:17:06 +0000 |
parents | d6bba071525c |
children | 6d2b9a2c1ca4 |
files | src/keyboard.c |
diffstat | 1 files changed, 12 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/src/keyboard.c Sat Oct 21 23:16:16 1995 +0000 +++ b/src/keyboard.c Sat Oct 21 23:17:06 1995 +0000 @@ -151,6 +151,10 @@ /* True while displaying for echoing. Delays C-g throwing. */ static int echoing; +/* True means we can start echoing at the next input pause + even though there is something in the echo area. */ +static int ok_to_echo_at_next_pause; + /* Nonzero means disregard local maps for the menu bar. */ static int inhibit_local_menu_bar_menus; @@ -655,6 +659,7 @@ current_kboard->immediate_echo = 0; current_kboard->echoptr = current_kboard->echobuf; current_kboard->echo_after_prompt = -1; + ok_to_echo_at_next_pause = 0; } /* Return the length of the current echo string. */ @@ -1758,7 +1763,8 @@ /* Message turns off echoing unless more keystrokes turn it on again. */ if (echo_area_glyphs && *echo_area_glyphs - && echo_area_glyphs != current_kboard->echobuf) + && echo_area_glyphs != current_kboard->echobuf + && ! ok_to_echo_at_next_pause) cancel_echoing (); else /* If already echoing, continue. */ @@ -1833,7 +1839,8 @@ && this_command_key_count > 0 && ! noninteractive && echo_keystrokes > 0 - && (echo_area_glyphs == 0 || *echo_area_glyphs == 0)) + && (echo_area_glyphs == 0 || *echo_area_glyphs == 0 + || ok_to_echo_at_next_pause)) { Lisp_Object tem0; @@ -2130,6 +2137,9 @@ echo_char (c); if (! NILP (also_record)) echo_char (also_record); + /* Once we reread a character, echoing can happen + the next time we pause to read a new one. */ + ok_to_echo_at_next_pause = 1; } /* Record this character as part of the current key. */