# HG changeset patch # User Matt Harbison # Date 2018-09-20 03:54:16 # Node ID 255d1885c7f8663691eca5ef811568b9a53bbf1b # Parent ac32685011a344fa489592f5e0f7d12bd598fdea py3: resolve Unicode issues around `hg serve` on Windows Presumably we're going to want to use CreateProcessW(), and possibly get rid of pycompat.getcwd() here (which maps to the DeprecationWarning causing os.getcwdb()) to use os.getcwd() directly. But this was a minimal change to get rid of some stacktraces in test-run-tests.t. diff --git a/mercurial/win32.py b/mercurial/win32.py --- a/mercurial/win32.py +++ b/mercurial/win32.py @@ -579,10 +579,11 @@ def spawndetached(args): env = '\0' env += '\0' - args = subprocess.list2cmdline(args) + args = subprocess.list2cmdline(pycompat.rapply(encoding.strfromlocal, args)) + # TODO: CreateProcessW on py3? res = _kernel32.CreateProcessA( - None, args, None, None, False, _CREATE_NO_WINDOW, + None, encoding.strtolocal(args), None, None, False, _CREATE_NO_WINDOW, env, pycompat.getcwd(), ctypes.byref(si), ctypes.byref(pi)) if not res: raise ctypes.WinError() diff --git a/mercurial/windows.py b/mercurial/windows.py --- a/mercurial/windows.py +++ b/mercurial/windows.py @@ -523,7 +523,7 @@ def rename(src, dst): os.rename(src, dst) def gethgcmd(): - return [sys.executable] + sys.argv[:1] + return [encoding.strtolocal(arg) for arg in [sys.executable] + sys.argv[:1]] def groupmembers(name): # Don't support groups on Windows for now