diff options
-rw-r--r-- | win32/termios.c | 18 |
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 | } |