changeset 30301:8321b083a83d

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().
author Pulkit Goyal <7895pulkit@gmail.com>
date Sun, 06 Nov 2016 12:18:23 +0900
parents 42af0590f4b9
children 3874ddba1ab4
files mercurial/i18n.py mercurial/util.py
diffstat 2 files changed, 4 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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