py3: byteify windows.shelltocmdexe()
authorMatt Harbison <matt_harbison@yahoo.com>
Sat, 29 Sep 2018 20:57:49 -0400
changeset 39910 6e2c8f7f894e
parent 39909 0f8ff3ff5d5c
child 39911 d1bc6cf2be69
py3: byteify windows.shelltocmdexe() This makes test-doctest.py happy on Windows.
mercurial/windows.py
--- a/mercurial/windows.py	Sat Sep 29 20:33:52 2018 -0400
+++ b/mercurial/windows.py	Sat Sep 29 20:57:49 2018 -0400
@@ -314,7 +314,7 @@
     index = 0
     pathlen = len(path)
     while index < pathlen:
-        c = path[index]
+        c = path[index:index + 1]
         if c == b'\'':   # no expansion within single quotes
             path = path[index + 1:]
             pathlen = len(path)
@@ -344,7 +344,7 @@
                     var = path[:index]
 
                     # See below for why empty variables are handled specially
-                    if env.get(var, '') != '':
+                    if env.get(var, b'') != b'':
                         res += b'%' + var + b'%'
                     else:
                         res += b'${' + var + b'}'
@@ -365,20 +365,20 @@
                 # VAR, and that really confuses things like revset expressions.
                 # OTOH, if it's left in Unix format and the hook runs sh.exe, it
                 # will substitute to an empty string, and everything is happy.
-                if env.get(var, '') != '':
+                if env.get(var, b'') != b'':
                     res += b'%' + var + b'%'
                 else:
                     res += b'$' + var
 
-                if c != '':
+                if c != b'':
                     index -= 1
         elif (c == b'~' and index + 1 < pathlen
-              and path[index + 1] in (b'\\', b'/')):
+              and path[index + 1:index + 2] in (b'\\', b'/')):
             res += "%USERPROFILE%"
         elif (c == b'\\' and index + 1 < pathlen
-              and path[index + 1] in (b'$', b'~')):
+              and path[index + 1:index + 2] in (b'$', b'~')):
             # Skip '\', but only if it is escaping $ or ~
-            res += path[index + 1]
+            res += path[index + 1:index + 2]
             index += 1
         else:
             res += c