Fix getch on windows

This commit is contained in:
Pavel Krymets
2015-11-30 12:33:28 -08:00
parent 9192b555b5
commit b18a049886
+13 -1
View File
@@ -6,7 +6,19 @@ from .exceptions import NoRuleMatched
from . import logs
try:
from msvcrt import getch
import msvcrt
def getch():
ch = msvcrt.getch()
if ch in (b'\x00', b'\xe0'): # arrow or function key prefix?
ch = msvcrt.getch() # second call returns the actual key code
if ch == b'\x03':
raise KeyboardInterrupt
if ch == b'H':
return 'k'
if ch == b'P':
return 'j'
return ch.decode(sys.stdout.encoding)
except ImportError:
def getch():
import tty