mercurial/dispatch.py
changeset 12040 529e712cb1ba
parent 11989 f853873fc66d
parent 12039 18e1e7520b67
child 12070 fddacca3202e
equal deleted inserted replaced
12037:aaf9968bd8b7 12040:529e712cb1ba
   187         return fn.args
   187         return fn.args
   188     return []
   188     return []
   189 
   189 
   190 class cmdalias(object):
   190 class cmdalias(object):
   191     def __init__(self, name, definition, cmdtable):
   191     def __init__(self, name, definition, cmdtable):
   192         self.name = name
   192         self.name = self.cmd = name
   193         self.definition = definition
   193         self.definition = definition
   194         self.args = []
   194         self.args = []
   195         self.opts = []
   195         self.opts = []
   196         self.help = ''
   196         self.help = ''
   197         self.norepo = True
   197         self.norepo = True
   198         self.badalias = False
   198         self.badalias = False
   199 
   199 
   200         try:
   200         try:
   201             cmdutil.findcmd(self.name, cmdtable, True)
   201             aliases, entry = cmdutil.findcmd(self.name, cmdtable)
       
   202             for alias, e in cmdtable.iteritems():
       
   203                 if e is entry:
       
   204                     self.cmd = alias
       
   205                     break
   202             self.shadows = True
   206             self.shadows = True
   203         except error.UnknownCommand:
   207         except error.UnknownCommand:
   204             self.shadows = False
   208             self.shadows = False
   205 
   209 
   206         if not self.definition:
   210         if not self.definition:
   293     # aliases are processed after extensions have been loaded, so they
   297     # aliases are processed after extensions have been loaded, so they
   294     # may use extension commands. Aliases can also use other alias definitions,
   298     # may use extension commands. Aliases can also use other alias definitions,
   295     # but only if they have been defined prior to the current definition.
   299     # but only if they have been defined prior to the current definition.
   296     for alias, definition in ui.configitems('alias'):
   300     for alias, definition in ui.configitems('alias'):
   297         aliasdef = cmdalias(alias, definition, cmdtable)
   301         aliasdef = cmdalias(alias, definition, cmdtable)
   298         cmdtable[alias] = (aliasdef, aliasdef.opts, aliasdef.help)
   302         cmdtable[aliasdef.cmd] = (aliasdef, aliasdef.opts, aliasdef.help)
   299         if aliasdef.norepo:
   303         if aliasdef.norepo:
   300             commands.norepo += ' %s' % alias
   304             commands.norepo += ' %s' % alias
   301 
   305 
   302 def _parse(ui, args):
   306 def _parse(ui, args):
   303     options = {}
   307     options = {}