mirror of https://github.com/python/cpython.git
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).
This commit is contained in:
parent
e7c4193755
commit
c3da02e904
|
@ -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:
|
||||
|
|
Loading…
Reference in New Issue