py3: fix bytes-unicode dance while building docstring of extdiff
authorYuya Nishihara <yuya@tcha.org>
Sat, 17 Feb 2018 18:14:51 +0900
changeset 36266 1fa33bd848ee
parent 36265 b44fac3a49fb
child 36267 08f061a48a8f
py3: fix bytes-unicode dance while building docstring of extdiff
hgext/extdiff.py
mercurial/util.py
--- a/hgext/extdiff.py	Sat Feb 17 18:09:56 2018 +0900
+++ b/hgext/extdiff.py	Sat Feb 17 18:14:51 2018 +0900
@@ -366,7 +366,7 @@
         # We can't pass non-ASCII through docstrings (and path is
         # in an unknown encoding anyway)
         docpath = util.escapestr(path)
-        self.__doc__ = self.__doc__ % {'path': util.uirepr(docpath)}
+        self.__doc__ %= {r'path': pycompat.sysstr(util.uirepr(docpath))}
         self._cmdline = cmdline
 
     def __call__(self, ui, repo, *pats, **opts):
--- a/mercurial/util.py	Sat Feb 17 18:09:56 2018 +0900
+++ b/mercurial/util.py	Sat Feb 17 18:14:51 2018 +0900
@@ -2427,7 +2427,7 @@
 
 def uirepr(s):
     # Avoid double backslash in Windows path repr()
-    return repr(s).replace('\\\\', '\\')
+    return pycompat.byterepr(pycompat.bytestr(s)).replace(b'\\\\', b'\\')
 
 # delay import of textwrap
 def MBTextWrapper(**kwargs):