From 561767fc5942746bf52c4b9f630e6a79659896a0 Mon Sep 17 00:00:00 2001 From: Takashi Yano Date: Tue, 2 Nov 2021 12:40:10 +0900 Subject: [PATCH] Cygwin: console: Fix a bug on input when signalled. - This patch fixes the bug that Ctrl-C sometimes does not work as expected in Windows Terminal. Addresses: https://cygwin.com/pipermail/cygwin/2021-November/249749.html --- winsup/cygwin/fhandler_console.cc | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/winsup/cygwin/fhandler_console.cc b/winsup/cygwin/fhandler_console.cc index 940c66a6e..0501b36fa 100644 --- a/winsup/cygwin/fhandler_console.cc +++ b/winsup/cygwin/fhandler_console.cc @@ -1178,6 +1178,10 @@ out: /* Discard processed recored. */ DWORD dummy; DWORD discard_len = min (total_read, i + 1); + /* If input is signalled, do not discard input here because + tcflush() is already called from line_edit(). */ + if (stat == input_signalled && !(ti->c_lflag & NOFLSH)) + discard_len = 0; if (discard_len) ReadConsoleInputW (get_handle (), input_rec, discard_len, &dummy); return stat;