Kaydet (Commit) c3da02e9 authored tarafından Guido van Rossum's avatar Guido van Rossum

Don't catch interrupts in getpass() -- the finally clause will reset

the tty and the caller can deal with the interrupt.

In the windows version, recognize ^C and raise KeyboardInterrupt (not
sure if this is needed, but can't hurt).
üst e7c41937
......@@ -36,8 +36,7 @@ def getpass(prompt='Password: '):
new[3] = new[3] & ~TERMIOS.ECHO # 3 == 'lflags'
try:
termios.tcsetattr(fd, TERMIOS.TCSADRAIN, new)
try: passwd = raw_input(prompt)
except KeyboardInterrupt: passwd = None
passwd = raw_input(prompt)
finally:
termios.tcsetattr(fd, TERMIOS.TCSADRAIN, old)
......@@ -55,6 +54,8 @@ def win_getpass(prompt='Password: '):
c = msvcrt.getch()
if c == '\r' or c == '\n':
break
if c == '\003':
raise KeyboardInterrupt
if c == '\b':
pw = pw[:-1]
else:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment