py3: make util.datapath a bytes variable
In this patch we make util.datapath a bytes variable, but we have to pass a
unicode to gettext.translation otherwise it will cry. Used pycompat.fsdecode()
to decode it back to unicode as it was converted to bytes using
pycompat.fsencode().
--- a/mercurial/i18n.py Sun Nov 06 03:12:40 2016 +0530
+++ b/mercurial/i18n.py Sun Nov 06 12:18:23 2016 +0900
@@ -49,6 +49,7 @@
_ugettext = None
def setdatapath(datapath):
+ datapath = pycompat.fsdecode(datapath)
localedir = os.path.join(datapath, pycompat.sysstr('locale'))
t = gettextmod.translation('hg', localedir, _languages, fallback=True)
global _ugettext
--- a/mercurial/util.py Sun Nov 06 03:12:40 2016 +0530
+++ b/mercurial/util.py Sun Nov 06 12:18:23 2016 +0900
@@ -938,6 +938,9 @@
else:
datapath = os.path.dirname(__file__)
+if not isinstance(datapath, bytes):
+ datapath = pycompat.fsencode(datapath)
+
i18n.setdatapath(datapath)
_hgexecutable = None