Patchwork D9165: errors: name arguments to AmbiguousCommand constructor

login
register
mail settings
Submitter phabricator
Date Oct. 7, 2020, 6:10 a.m.
Message ID <differential-rev-PHID-DREV-zs3wrzii2vgeqkzaq3zm-req@mercurial-scm.org>
Download mbox | patch
Permalink /patch/47395/
State Superseded
Headers show

Comments

phabricator - Oct. 7, 2020, 6:10 a.m.
martinvonz created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.

REPOSITORY
  rHG Mercurial

BRANCH
  default

REVISION DETAIL
  https://phab.mercurial-scm.org/D9165

AFFECTED FILES
  mercurial/dispatch.py
  mercurial/error.py
  mercurial/help.py

CHANGE DETAILS




To: martinvonz, #hg-reviewers
Cc: mercurial-patches, mercurial-devel

Patch

diff --git a/mercurial/help.py b/mercurial/help.py
--- a/mercurial/help.py
+++ b/mercurial/help.py
@@ -713,7 +713,7 @@ 
         except error.AmbiguousCommand as inst:
             # py3 fix: except vars can't be used outside the scope of the
             # except block, nor can be used inside a lambda. python issue4617
-            prefix = inst.args[0]
+            prefix = inst.prefix
             select = lambda c: cmdutil.parsealiases(c)[0].startswith(prefix)
             rst = helplist(select)
             return rst
diff --git a/mercurial/error.py b/mercurial/error.py
--- a/mercurial/error.py
+++ b/mercurial/error.py
@@ -117,6 +117,11 @@ 
 class AmbiguousCommand(Exception):
     """Exception raised if command shortcut matches more than one command."""
 
+    def __init__(self, prefix, matches):
+        self.prefix = prefix
+        self.matches = matches
+        super(AmbiguousCommand, self).__init__()
+
     __bytes__ = _tobytes
 
 
diff --git a/mercurial/dispatch.py b/mercurial/dispatch.py
--- a/mercurial/dispatch.py
+++ b/mercurial/dispatch.py
@@ -489,7 +489,7 @@ 
     except error.AmbiguousCommand as inst:
         ui.warn(
             _(b"hg: command '%s' is ambiguous:\n    %s\n")
-            % (inst.args[0], b" ".join(inst.args[1]))
+            % (inst.prefix, b" ".join(inst.matches))
         )
     except error.CommandError as inst:
         if inst.command: