# HG changeset patch # User Pulkit Goyal <7895pulkit@gmail.com> # Date 2016-12-19 18:32:24 # Node ID 3fcaf0f660cead2e3313947a1147ebb4df545bc4 # Parent 5861bdbeb9a3a9e5d34df80d24d78bdbe4eea5b8 py3: have bytes version of sys.executable sys.executable on Python 3 returns unicodes and we want bytes. So this patch adds a new pycompat.sysexecutable which returns bytes by encoding using os.fsencode() since it is path variable. diff --git a/mercurial/pycompat.py b/mercurial/pycompat.py --- a/mercurial/pycompat.py +++ b/mercurial/pycompat.py @@ -52,6 +52,9 @@ if ispy3: # returns bytes. getcwd = os.getcwdb sysplatform = sys.platform.encode('ascii') + sysexecutable = sys.executable + if sysexecutable: + sysexecutable = os.fsencode(sysexecutable) # TODO: .buffer might not exist if std streams were replaced; we'll need # a silly wrapper to make a bytes stream backed by a unicode one. @@ -158,6 +161,7 @@ else: sysplatform = sys.platform getcwd = os.getcwd osgetenv = os.getenv + sysexecutable = sys.executable stringio = io.StringIO empty = _queue.Empty