diff --git a/.gitignore b/.gitignore index 4301da0..9b44a48 100644 --- a/.gitignore +++ b/.gitignore @@ -10,3 +10,4 @@ venv/ coverage.xml .eggs *.egg +.idea/ diff --git a/readchar/readchar_linux.py b/readchar/readchar_linux.py index 6bcb4e2..6301bca 100644 --- a/readchar/readchar_linux.py +++ b/readchar/readchar_linux.py @@ -7,12 +7,14 @@ import tty -def readchar(): +def readchar(enter_code="\r"): fd = sys.stdin.fileno() old_settings = termios.tcgetattr(fd) try: - tty.setraw(sys.stdin.fileno()) + tty.setcbreak(sys.stdin.fileno()) ch = sys.stdin.read(1) + if ch in ('\r', '\n'): + ch = enter_code finally: termios.tcsetattr(fd, termios.TCSADRAIN, old_settings) return ch diff --git a/readchar/readchar_windows.py b/readchar/readchar_windows.py index 3afb4f8..c197a9a 100644 --- a/readchar/readchar_windows.py +++ b/readchar/readchar_windows.py @@ -24,4 +24,4 @@ def readchar(blocking=False): msvcrt.getch() ch = msvcrt.getch() - return ch if sys.version_info.major > 2 else ch.decode(encoding=win_encoding) + return ch.decode() if sys.version_info.major > 2 else ch.decode(encoding=win_encoding)