changeset: 81775:cf0f450b3299 branch: 3.2 parent: 81769:58646b0c5226 user: Nadeem Vawda date: Sun Jan 27 14:01:42 2013 +0100 files: Lib/test/test_builtin.py Misc/NEWS Modules/readline.c description: 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. diff -r 58646b0c5226 -r cf0f450b3299 Lib/test/test_builtin.py --- a/Lib/test/test_builtin.py Sat Jan 26 18:09:12 2013 -0800 +++ b/Lib/test/test_builtin.py Sun Jan 27 14:01:42 2013 +0100 @@ -18,6 +18,13 @@ 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: diff -r 58646b0c5226 -r cf0f450b3299 Misc/NEWS --- a/Misc/NEWS Sat Jan 26 18:09:12 2013 -0800 +++ b/Misc/NEWS Sun Jan 27 14:01:42 2013 +0100 @@ -10,6 +10,10 @@ 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 -r 58646b0c5226 -r cf0f450b3299 Modules/readline.c --- a/Modules/readline.c Sat Jan 26 18:09:12 2013 -0800 +++ b/Modules/readline.c Sun Jan 27 14:01:42 2013 +0100 @@ -1068,7 +1068,7 @@ 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) {

AltStyle によって変換されたページ (->オリジナル) /