Mercurial > hg
changeset 36641:77f98867538f
py3: fix some unicode madness in global exception catcher
author | Yuya Nishihara <yuya@tcha.org> |
---|---|
date | Sat, 03 Mar 2018 10:02:36 -0500 |
parents | c77c925987d7 |
children | f6efb3c08c19 |
files | mercurial/dispatch.py mercurial/scmutil.py |
diffstat | 2 files changed, 15 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/dispatch.py Sat Mar 03 10:08:13 2018 -0500 +++ b/mercurial/dispatch.py Sat Mar 03 10:02:36 2018 -0500 @@ -496,7 +496,7 @@ args = pycompat.shlexsplit(self.definition) except ValueError as inst: self.badalias = (_("error in definition for alias '%s': %s") - % (self.name, inst)) + % (self.name, util.forcebytestr(inst))) return earlyopts, args = _earlysplitopts(args) if earlyopts: @@ -623,7 +623,7 @@ try: args = fancyopts.fancyopts(args, commands.globalopts, options) except getopt.GetoptError as inst: - raise error.CommandError(None, inst) + raise error.CommandError(None, util.forcebytestr(inst)) if args: cmd, args = args[0], args[1:] @@ -647,7 +647,7 @@ try: args = fancyopts.fancyopts(args, c, cmdoptions, gnu=True) except getopt.GetoptError as inst: - raise error.CommandError(cmd, inst) + raise error.CommandError(cmd, util.forcebytestr(inst)) # separate global options back out for o in commands.globalopts: @@ -672,7 +672,8 @@ configs.append((section, name, value)) except (IndexError, ValueError): raise error.Abort(_('malformed --config option: %r ' - '(use --config section.name=value)') % cfg) + '(use --config section.name=value)') + % pycompat.bytestr(cfg)) return configs
--- a/mercurial/scmutil.py Sat Mar 03 10:08:13 2018 -0500 +++ b/mercurial/scmutil.py Sat Mar 03 10:02:36 2018 -0500 @@ -162,13 +162,14 @@ reason = _('timed out waiting for lock held by %r') % inst.locker else: reason = _('lock held by %r') % inst.locker - ui.warn(_("abort: %s: %s\n") % (inst.desc or inst.filename, reason)) + ui.warn(_("abort: %s: %s\n") + % (inst.desc or encoding.strtolocal(inst.filename), reason)) if not inst.locker: ui.warn(_("(lock might be very busy)\n")) except error.LockUnavailable as inst: ui.warn(_("abort: could not lock %s: %s\n") % - (inst.desc or inst.filename, - encoding.strtolocal(inst.strerror))) + (inst.desc or encoding.strtolocal(inst.filename), + encoding.strtolocal(inst.strerror))) except error.OutOfBandError as inst: if inst.args: msg = _("abort: remote error:\n") @@ -207,7 +208,7 @@ if inst.hint: ui.warn(_("(%s)\n") % inst.hint) except ImportError as inst: - ui.warn(_("abort: %s!\n") % inst) + ui.warn(_("abort: %s!\n") % util.forcebytestr(inst)) m = util.forcebytestr(inst).split()[-1] if m in "mpatch bdiff".split(): ui.warn(_("(did you forget to compile extensions?)\n")) @@ -232,7 +233,8 @@ elif getattr(inst, "strerror", None): if getattr(inst, "filename", None): ui.warn(_("abort: %s: %s\n") % ( - encoding.strtolocal(inst.strerror), inst.filename)) + encoding.strtolocal(inst.strerror), + encoding.strtolocal(inst.filename))) else: ui.warn(_("abort: %s\n") % encoding.strtolocal(inst.strerror)) else: @@ -240,7 +242,8 @@ except OSError as inst: if getattr(inst, "filename", None) is not None: ui.warn(_("abort: %s: '%s'\n") % ( - encoding.strtolocal(inst.strerror), inst.filename)) + encoding.strtolocal(inst.strerror), + encoding.strtolocal(inst.filename))) else: ui.warn(_("abort: %s\n") % encoding.strtolocal(inst.strerror)) except MemoryError: @@ -250,7 +253,7 @@ # Just in case catch this and and pass exit code to caller. return inst.code except socket.error as inst: - ui.warn(_("abort: %s\n") % inst.args[-1]) + ui.warn(_("abort: %s\n") % util.forcebytestr(inst.args[-1])) return -1