# HG changeset patch # User Matt Harbison # Date 1538269069 14400 # Node ID 6e2c8f7f894e9dd829adf75582ff128a455fbb53 # Parent 0f8ff3ff5d5cb276040fbb3605688b2c75ba6539 py3: byteify windows.shelltocmdexe() This makes test-doctest.py happy on Windows. diff -r 0f8ff3ff5d5c -r 6e2c8f7f894e 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