summary refs log tree commit diff stats
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/pure/terminal.nim5
1 files changed, 4 insertions, 1 deletions
diff --git a/lib/pure/terminal.nim b/lib/pure/terminal.nim
index ef5a95ed2..f15cee66a 100644
--- a/lib/pure/terminal.nim
+++ b/lib/pure/terminal.nim
@@ -634,7 +634,10 @@ proc getch*(): char =
       doAssert(readConsoleInput(fd, addr(keyEvent), 1, addr(numRead)) != 0)
       if numRead == 0 or keyEvent.eventType != 1 or keyEvent.bKeyDown == 0:
         continue
-      return char(keyEvent.uChar)
+      if keyEvent.uChar == 0:
+        return char(keyEvent.wVirtualKeyCode)
+      else:
+        return char(keyEvent.uChar)
   else:
     let fd = getFileHandle(stdin)
     var oldMode: Termios