https://sourceware.org/git/gitweb.cgi?p=newlib-cygwin.git;h=5f10ebc0a76633066bd30c89b715692d68e19f9f

commit 5f10ebc0a76633066bd30c89b715692d68e19f9f
Author: Takashi Yano <[email protected]>
Date:   Sat Mar 19 08:43:24 2022 +0900

    Cygwin: console: Ignore dwControlKeyState in event comparison.
    
    - dwControlKeyState also may be null'ed on WriteConsoleInputW().
      Therefore ignore it in event comparison as well as wVirtualKeyCode
      and wVirtualScanCode.

Diff:
---
 winsup/cygwin/fhandler_console.cc | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/winsup/cygwin/fhandler_console.cc 
b/winsup/cygwin/fhandler_console.cc
index 16850aebb..1bfe05a99 100644
--- a/winsup/cygwin/fhandler_console.cc
+++ b/winsup/cygwin/fhandler_console.cc
@@ -187,13 +187,13 @@ inrec_eq (const INPUT_RECORD *a, const INPUT_RECORD *b, 
DWORD n)
   for (DWORD i = 0; i < n; i++)
     {
       if (a[i].EventType == KEY_EVENT && b[i].EventType == KEY_EVENT)
-       { /* wVirtualKeyCode and wVirtualScanCode of the readback
-            key event may be different from that of written event. */
+       { /* wVirtualKeyCode, wVirtualScanCode and dwControlKeyState
+            of the readback key event may be different from that of
+            written event. Therefore they are ignored. */
          const KEY_EVENT_RECORD *ak = &a[i].Event.KeyEvent;
          const KEY_EVENT_RECORD *bk = &b[i].Event.KeyEvent;
          if (ak->bKeyDown != bk->bKeyDown
              || ak->uChar.UnicodeChar != bk->uChar.UnicodeChar
-             || ak->dwControlKeyState != bk->dwControlKeyState
              || ak->wRepeatCount != bk->wRepeatCount)
            return false;
        }

Reply via email to