]> granicus.if.org Git - python/commitdiff
#21169: add comment and doc update for getpass change.
authorR David Murray <rdmurray@bitdance.com>
Mon, 14 Apr 2014 14:28:58 +0000 (10:28 -0400)
committerR David Murray <rdmurray@bitdance.com>
Mon, 14 Apr 2014 14:28:58 +0000 (10:28 -0400)
Doc/library/getpass.rst
Lib/getpass.py

index ffe2b1256ba54661b05b8f3fa56101bff8f4b2f6..211563e23e56b07658cd85634dbd4944855236f4 100644 (file)
@@ -13,10 +13,11 @@ The :mod:`getpass` module provides two functions:
 .. function:: getpass(prompt='Password: ', stream=None)
 
    Prompt the user for a password without echoing.  The user is prompted using
-   the string *prompt*, which defaults to ``'Password: '``.  On Unix, the prompt
-   is written to the file-like object *stream*.  *stream* defaults to the
-   controlling terminal (:file:`/dev/tty`) or if that is unavailable to
-   ``sys.stderr`` (this argument is ignored on Windows).
+   the string *prompt*, which defaults to ``'Password: '``.  On Unix, the
+   prompt is written to the file-like object *stream* using the replace error
+   handler if needed.  *stream* defaults to the controlling terminal
+   (:file:`/dev/tty`) or if that is unavailable to ``sys.stderr`` (this
+   argument is ignored on Windows).
 
    If echo free input is unavailable getpass() falls back to printing
    a warning message to *stream* and reading from ``sys.stdin`` and
index 274036348832e156ec5843048a9f1984ee632466..7c4e976174ab9d4075370cbed9898f5368b1d59a 100644 (file)
@@ -138,6 +138,7 @@ def _raw_input(prompt="", stream=None, input=None):
         try:
             stream.write(prompt)
         except UnicodeEncodeError:
+            # Use replace error handler to get as much as possible printed.
             prompt = prompt.encode(stream.encoding, 'replace')
             prompt = prompt.decode(stream.encoding)
             stream.write(prompt)