diff --git a/pytimedinput/pytimedinput.py b/pytimedinput/pytimedinput.py index 53f0de7..84b0f68 100644 --- a/pytimedinput/pytimedinput.py +++ b/pytimedinput/pytimedinput.py @@ -125,6 +125,9 @@ def readStdin(): break if(checkStdin()): inputCharacter = readStdin() + if inputCharacter == '\x04': # ctrl-d pressed --> raise EOFError + __setStdoutSettings(__savedConsoleSettings) + raise EOFError if(inputCharacter in endCharacters): break if(inputCharacter != '\b' and inputCharacter != '\x7f'): @@ -150,6 +153,7 @@ def readStdin(): print("\x1b[1D\x1b[0K", end='', flush=True) if(resetOnInput and timeout > -1): timeStart = time.time() + time.sleep(0.01) print("") __setStdoutSettings(__savedConsoleSettings) return userInput, timedOut @@ -184,3 +188,10 @@ def __enableStdoutAnsiEscape(): else: # Should be enabled by default under Linux (and OSX?), just set cbreak-mode tty.setcbreak(sys.stdin.fileno(), termios.TCSADRAIN) + + +def main(): + timedInput("Enter: ", timeout=5) + +if __name__ == '__main__': + main()