Bug report
Bug description:
Hitting Ctrl+U should clear the line but this is badly handled when echo_char is given:
>>> getpass.getpass()
Password:
'bar'
>>> getpass.getpass(echo_char="*")
Password: *******
'foo\x15bar'
See #138514 (comment).
This issue stems from the fact that we switch to non-canonical mode (https://www.man7.org/linux/man-pages/man3/termios.3.html). The rationale is that in canonical mode, we only have a line-by-line feedback (so we would see the characters only when we hit ENTER, which is not really useful...)
CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs