From 29986e95a038a29b9cbd0b31befcc3330ad162da Mon Sep 17 00:00:00 2001 From: Benno Schulenberg Date: Sun, 3 Jul 2016 13:37:48 +0200 Subject: [PATCH] input: don't drop the first byte when user starts typing during loading Precalculation of the multiline color data can be cut short when the user is impatient and starts typing. But this would drop the first byte of whatever was typed -- not nice when it was just plain text, but surprising and worse when the first keystroke was a command. This fixes https://savannah.gnu.org/bugs/?48388. --- src/color.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/color.c b/src/color.c index d7888697..e5ef9633 100644 --- a/src/color.c +++ b/src/color.c @@ -401,10 +401,15 @@ void alloc_multidata_if_needed(filestruct *fileptr) bool key_was_pressed(void) { static time_t last_time = 0; + int onebyte; if (time(NULL) != last_time) { last_time = time(NULL); - return (wgetch(edit) != ERR); + onebyte = wgetch(edit); + if (onebyte == ERR) + return FALSE; + ungetch(onebyte); + return TRUE; } else return FALSE; }