#6906: TCL_LIBRARY and TK_LIBRARY environment variables should be encoded.

This commit is contained in:
Florent Xicluna 2010-03-06 11:01:08 +00:00
parent aa90db9477
commit 0b9a18a42f
2 changed files with 7 additions and 5 deletions

View File

@ -19,10 +19,10 @@ except (ImportError, AttributeError):
return s
else:
def convert_path(s):
if isinstance(s, str):
s = s.decode("mbcs")
assert isinstance(s, str) # sys.prefix contains only bytes
udir = s.decode("mbcs")
hdir = ctypes.windll.kernel32.\
CreateFileW(s, 0x80, # FILE_READ_ATTRIBUTES
CreateFileW(udir, 0x80, # FILE_READ_ATTRIBUTES
1, # FILE_SHARE_READ
None, 3, # OPEN_EXISTING
0x02000000, # FILE_FLAG_BACKUP_SEMANTICS
@ -38,9 +38,9 @@ else:
if res == 0:
# Conversion failed (e.g. network location)
return s
s = buf[:res]
s = buf[:res].encode("mbcs")
# Ignore leading \\?\
if s.startswith(u"\\\\?\\"):
if s.startswith("\\\\?\\"):
s = s[4:]
return s

View File

@ -41,6 +41,8 @@ Core and Builtins
Library
-------
- Issue #6906: Tk should not set Unicode environment variables on Windows.
- Issue #1054943: Fix unicodedata.normalize('NFC', text) for the Public Review
Issue #29