]> granicus.if.org Git - python/commitdiff
#6906: TCL_LIBRARY and TK_LIBRARY environment variables should be encoded.
authorFlorent Xicluna <florent.xicluna@gmail.com>
Sat, 6 Mar 2010 11:01:08 +0000 (11:01 +0000)
committerFlorent Xicluna <florent.xicluna@gmail.com>
Sat, 6 Mar 2010 11:01:08 +0000 (11:01 +0000)
Lib/lib-tk/FixTk.py
Misc/NEWS

index 638a94c0d2926c62578f3dc43196d6f9c1042b58..0d0966cf8e1176efd875bd2b7253ee125664d76e 100644 (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
 
index 24aab35c8be62baf648b460345f2eaa57fd12a54..e6662e8b12fe30cdfe99ffb10369ae8edbe29660 100644 (file)
--- a/Misc/NEWS
+++ b/Misc/NEWS
@@ -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