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.
This commit is contained in:
Nadeem Vawda 2013-01-27 14:01:42 +01:00
parent 8916b853b9
commit 6f02ea02c8
3 changed files with 12 additions and 1 deletions

View File

@ -18,6 +18,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:

View File

@ -10,6 +10,10 @@ What's New in Python 3.2.4
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.

View File

@ -1068,7 +1068,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) {