py3: convert exception to bytes to pass into ui.warn()
authorPulkit Goyal <7895pulkit@gmail.com>
Fri, 02 Jun 2017 10:35:21 +0530
changeset 32642 c032e137e494
parent 32641 49e1e5acb8ff
child 32643 1df98fc923d4
py3: convert exception to bytes to pass into ui.warn() Here encoding.strtolocal() is used because exc maybe an IOError which could contain a valid non-ascii unicode.
mercurial/hook.py
--- a/mercurial/hook.py	Thu Jun 01 02:14:26 2017 +0530
+++ b/mercurial/hook.py	Fri Jun 02 10:35:21 2017 +0530
@@ -13,6 +13,7 @@
 from .i18n import _
 from . import (
     demandimport,
+    encoding,
     error,
     extensions,
     pycompat,
@@ -97,7 +98,7 @@
                          (hname, exc.args[0]))
         else:
             ui.warn(_('error: %s hook raised an exception: '
-                           '%s\n') % (hname, exc))
+                      '%s\n') % (hname, encoding.strtolocal(str(exc))))
         if throw:
             raise
         if not ui.tracebackflag: