From 29986e95a038a29b9cbd0b31befcc3330ad162da Mon Sep 17 00:00:00 2001
From: Benno Schulenberg <bensberg@justemail.net>
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;
 }
-- 
GitLab