win32: fix encoding handling for registry strings (issue3467) stable
authorMatt Mackall <mpm@selenic.com>
Mon, 21 May 2012 16:32:49 -0500
branchstable
changeset 16759 133a7922a900
parent 16748 0a730d3c5aae
child 16760 ac89a23ca814
win32: fix encoding handling for registry strings (issue3467) This stopped handling non-ASCII strings in 1.8
mercurial/win32.py
--- a/mercurial/win32.py	Wed May 16 17:02:30 2012 +0900
+++ b/mercurial/win32.py	Mon May 21 16:32:49 2012 -0500
@@ -5,7 +5,6 @@
 # This software may be used and distributed according to the terms of the
 # GNU General Public License version 2 or any later version.
 
-import encoding
 import ctypes, errno, os, struct, subprocess, random
 
 _kernel32 = ctypes.windll.kernel32
@@ -290,8 +289,8 @@
             if res != _ERROR_SUCCESS:
                 continue
             if type.value == _REG_SZ:
-                # never let a Unicode string escape into the wild
-                return encoding.tolocal(buf.value.encode('UTF-8'))
+                # string is in ANSI code page, aka local encoding
+                return buf.value
             elif type.value == _REG_DWORD:
                 fmt = '<L'
                 s = ctypes.string_at(byref(buf), struct.calcsize(fmt))