diff options
author | Nadeem Vawda <nadeem.vawda@gmail.com> | 2013-01-27 13:13:25 (GMT) |
---|---|---|
committer | Nadeem Vawda <nadeem.vawda@gmail.com> | 2013-01-27 13:13:25 (GMT) |
commit | 60cc32382f0a568723da8cb3c1b3fc532ab41d58 (patch) | |
tree | f74f179918d09d19201174aecea2b8caa0289c92 | |
parent | 3f5db3940ff71428d1eecb3d4eebe68d9c3d216d (diff) | |
parent | 6f02ea02c881e06029e8d44a5414682bc4b65fb8 (diff) | |
download | cpython-60cc32382f0a568723da8cb3c1b3fc532ab41d58.zip cpython-60cc32382f0a568723da8cb3c1b3fc532ab41d58.tar.gz cpython-60cc32382f0a568723da8cb3c1b3fc532ab41d58.tar.bz2 |
Issue #13886: Fix input() to not strip out supposedly-invalid input bytes.
Also fix sporadic failures in test_builtin due to dependence on whether the
readline module has previously been imported.
-rw-r--r-- | Lib/test/test_builtin.py | 7 | ||||
-rw-r--r-- | Misc/NEWS | 4 | ||||
-rw-r--r-- | Modules/readline.c | 2 |
3 files changed, 12 insertions, 1 deletions
diff --git a/Lib/test/test_builtin.py b/Lib/test/test_builtin.py index bf005c5..704fe9c 100644 --- a/Lib/test/test_builtin.py +++ b/Lib/test/test_builtin.py @@ -20,6 +20,13 @@ try: import pty, signal except ImportError: pty = signal = None +# Importing this module has the side-effect of changing the behavior of input(). +# Ensure that we always use the readline version (if available), so we don't get +# different results depending on what other tests have already imported. +try: + import readline +except ImportError: + pass class Squares: @@ -12,6 +12,10 @@ What's New in Python 3.3.1? Core and Builtins ----------------- +- Issue #13886: Fix input() to not strip out input bytes that cannot be decoded + using the locale encoding. Also fix sporadic failures in test_builtin due to + dependence on whether the readline module has previously been imported. + - Issue #10156: In the interpreter's initialization phase, unicode globals are now initialized dynamically as needed. diff --git a/Modules/readline.c b/Modules/readline.c index a710652..02fc4c2 100644 --- a/Modules/readline.c +++ b/Modules/readline.c @@ -1067,7 +1067,7 @@ call_readline(FILE *sys_stdin, FILE *sys_stdout, char *prompt) char *saved_locale = strdup(setlocale(LC_CTYPE, NULL)); if (!saved_locale) Py_FatalError("not enough memory to save locale"); - setlocale(LC_CTYPE, ""); + setlocale(LC_CTYPE, "C"); #endif if (sys_stdin != rl_instream || sys_stdout != rl_outstream) { |