aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--win32/termios.c18
1 files changed, 17 insertions, 1 deletions
diff --git a/win32/termios.c b/win32/termios.c
index 1bd3cbd5b..812f6d5d7 100644
--- a/win32/termios.c
+++ b/win32/termios.c
@@ -29,8 +29,24 @@ int64_t FAST_FUNC read_key(int fd, char *buf, int timeout UNUSED_PARAM)
29 goto done; 29 goto done;
30 if (record.EventType != KEY_EVENT || !record.Event.KeyEvent.bKeyDown) 30 if (record.EventType != KEY_EVENT || !record.Event.KeyEvent.bKeyDown)
31 continue; 31 continue;
32 if (!record.Event.KeyEvent.uChar.AsciiChar) 32 if (!record.Event.KeyEvent.uChar.AsciiChar) {
33 switch (record.Event.KeyEvent.wVirtualKeyCode) {
34 case VK_UP: return KEYCODE_UP;
35 case VK_DOWN: return KEYCODE_DOWN;
36 case VK_RIGHT: return KEYCODE_RIGHT;
37 case VK_LEFT: return KEYCODE_LEFT;
38 case VK_HOME: return KEYCODE_HOME;
39 case VK_END: return KEYCODE_END;
40 case VK_CAPITAL:
41 case VK_SHIFT:
42 case VK_CONTROL:
43 case VK_MENU:
44 break;
45 default:
46 return -1;
47 }
33 continue; 48 continue;
49 }
34 ret = record.Event.KeyEvent.uChar.AsciiChar; 50 ret = record.Event.KeyEvent.uChar.AsciiChar;
35 break; 51 break;
36 } 52 }