Commits

Florent Xicluna  committed 48a6c26

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

  • Participants
  • Parent commits 7444d34
  • Branches legacy-trunk

Comments (0)

Files changed (2)

File Lib/lib-tk/FixTk.py

         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
         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
 
 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