mercurial/windows.py
changeset 39643 47ac5d93d708
parent 38725 c382c19ce9bd
child 39644 3b421154d2ca
--- a/mercurial/windows.py	Thu Sep 13 00:39:02 2018 -0400
+++ b/mercurial/windows.py	Thu Sep 13 20:54:53 2018 -0400
@@ -554,9 +554,10 @@
         scope = (scope,)
     for s in scope:
         try:
-            val = winreg.QueryValueEx(winreg.OpenKey(s, key), valname)[0]
-            # never let a Unicode string escape into the wild
-            return encoding.unitolocal(val)
+            with winreg.OpenKey(s, encoding.strfromlocal(key)) as hkey:
+                val = winreg.QueryValueEx(hkey, valname)[0]
+                # never let a Unicode string escape into the wild
+                return encoding.unitolocal(val)
         except EnvironmentError:
             pass