Kaydet (Commit) 06e2a5e0 authored tarafından Guido van Rossum's avatar Guido van Rossum

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.
üst 8b10f898
......@@ -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')
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment