From 0e98bdf5aa485c2b4164c9627ec34b7b54892352 Mon Sep 17 00:00:00 2001 From: memeplex Date: Sat, 19 Oct 2019 00:13:15 -0300 Subject: [PATCH] Replay key if kboard is interrupted while initializing (Bug#37782) * src/keyboard.c (read_key_sequence): Add key as mock_input and replay sequence using new keyboard. --- src/keyboard.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/keyboard.c b/src/keyboard.c index d67d18a801..5a214833ed 100644 --- a/src/keyboard.c +++ b/src/keyboard.c @@ -9580,7 +9580,16 @@ read_key_sequence (Lisp_Object *keybuf, Lisp_Object prompt, Fcons (make_lispy_switch_frame (frame), KVAR (interrupted_kboard, kbd_queue))); } - mock_input = 0; + if (FIXNUMP (key) && XFIXNUM (key) == -2) + mock_input = 0; + else + { + /* If interrupted while initializing terminal, we + need to replay the interrupting key. See + Bug#5095 and Bug#37782. */ + mock_input = 1; + keybuf[0] = key; + } goto replay_entire_sequence; } } -- 2.20.1