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