# HG changeset patch # User Matt Harbison # Date 1537415656 14400 # 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 -r ac32685011a3 -r 255d1885c7f8 mercurial/win32.py --- a/mercurial/win32.py Wed Sep 19 21:41:58 2018 -0400 +++ b/mercurial/win32.py Wed Sep 19 23:54:16 2018 -0400 @@ -579,10 +579,11 @@ 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 -r ac32685011a3 -r 255d1885c7f8 mercurial/windows.py --- a/mercurial/windows.py Wed Sep 19 21:41:58 2018 -0400 +++ b/mercurial/windows.py Wed Sep 19 23:54:16 2018 -0400 @@ -523,7 +523,7 @@ 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