Mercurial > hg
changeset 30500:fc0cfe6c87d7
py3: add os.getcwdb() to have bytes path
Following the behaviour of Python 3, os.getcwd() return unicodes. We need
bytes version as path variables are bytes in UNIX. Python 3 has os.getcwdb()
which returns current working directory in bytes.
Like rest of the things there in pycompat, like osname, ossep, we need to
rewrite every instance of os.getcwd to pycompat.getcwd to make them work
correctly on Python 3.
author | Pulkit Goyal <7895pulkit@gmail.com> |
---|---|
date | Tue, 22 Nov 2016 18:46:50 +0530 |
parents | 22d05b53b0e8 |
children | a87e469201f9 |
files | mercurial/dispatch.py mercurial/pycompat.py |
diffstat | 2 files changed, 5 insertions(+), 1 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/dispatch.py Tue Nov 22 18:13:02 2016 -0800 +++ b/mercurial/dispatch.py Tue Nov 22 18:46:50 2016 +0530 @@ -667,7 +667,7 @@ """ if wd is None: try: - wd = os.getcwd() + wd = pycompat.getcwd() except OSError as e: raise error.Abort(_("error getting current working directory: %s") % e.strerror)
--- a/mercurial/pycompat.py Tue Nov 22 18:13:02 2016 -0800 +++ b/mercurial/pycompat.py Tue Nov 22 18:46:50 2016 +0530 @@ -43,6 +43,9 @@ osname = os.name.encode('ascii') ospathsep = os.pathsep.encode('ascii') ossep = os.sep.encode('ascii') + # os.getcwd() on Python 3 returns string, but it has os.getcwdb() which + # returns bytes. + getcwd = os.getcwdb # 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. @@ -110,6 +113,7 @@ stdout = sys.stdout stderr = sys.stderr sysargv = sys.argv + getcwd = os.getcwd stringio = io.StringIO empty = _queue.Empty