mirror of https://github.com/python/cpython
Add special consideration for rlcompleter. As a side effect of
initializing GNU readline, setlocale(LC_CTYPE, "") is called, which changes the <ctype.h> macros to use the "default" locale (which isn't the *initial* locale -- the initial locale is the "C" locale in which only ASCII characters are printable). When the default locale is e.g. Latin-1, the repr() of string objects can include 8-bit characters with the high bit set; I believe this is due to the recent PRINT_MULTIBYTE_STRING changes to stringobject.c. This in turn screws up test_pyexpat and test_rotor, which depend on the repr() of 8-bit strings with high bit characters. The solution (for now) is to force the LC_CTYPE locale to "C" after importing rlcompleter. This is the locale required by the test suite anyway.
This commit is contained in:
parent
8b10f8988f
commit
06e2a5e052
|
@ -132,7 +132,6 @@ check_all("regsub")
|
|||
check_all("repr")
|
||||
check_all("rexec")
|
||||
check_all("rfc822")
|
||||
check_all("rlcompleter")
|
||||
check_all("robotparser")
|
||||
check_all("sched")
|
||||
check_all("sgmllib")
|
||||
|
@ -161,3 +160,15 @@ check_all("weakref")
|
|||
check_all("webbrowser")
|
||||
check_all("xdrlib")
|
||||
check_all("zipfile")
|
||||
|
||||
# rlcompleter needs special consideration; it import readline which
|
||||
# initializes GNU readline which calls setlocale(LC_CTYPE, "")... :-(
|
||||
try:
|
||||
check_all("rlcompleter")
|
||||
finally:
|
||||
try:
|
||||
import locale
|
||||
except ImportError:
|
||||
pass
|
||||
else:
|
||||
locale.setlocale(locale.LC_CTYPE, 'C')
|
||||
|
|
Loading…
Reference in New Issue