mercurial/dispatch.py
branchstable
changeset 12039 18e1e7520b67
parent 11712 9cbc62f68328
child 12040 529e712cb1ba
child 12067 a4fbbe0fbc38
equal deleted inserted replaced
12038:9617803b1acb 12039:18e1e7520b67
   180         return fn.args
   180         return fn.args
   181     return []
   181     return []
   182 
   182 
   183 class cmdalias(object):
   183 class cmdalias(object):
   184     def __init__(self, name, definition, cmdtable):
   184     def __init__(self, name, definition, cmdtable):
   185         self.name = name
   185         self.name = self.cmd = name
   186         self.definition = definition
   186         self.definition = definition
   187         self.args = []
   187         self.args = []
   188         self.opts = []
   188         self.opts = []
   189         self.help = ''
   189         self.help = ''
   190         self.norepo = True
   190         self.norepo = True
   191         self.badalias = False
   191         self.badalias = False
   192 
   192 
   193         try:
   193         try:
   194             cmdutil.findcmd(self.name, cmdtable, True)
   194             aliases, entry = cmdutil.findcmd(self.name, cmdtable)
       
   195             for alias, e in cmdtable.iteritems():
       
   196                 if e is entry:
       
   197                     self.cmd = alias
       
   198                     break
   195             self.shadows = True
   199             self.shadows = True
   196         except error.UnknownCommand:
   200         except error.UnknownCommand:
   197             self.shadows = False
   201             self.shadows = False
   198 
   202 
   199         if not self.definition:
   203         if not self.definition:
   254     # aliases are processed after extensions have been loaded, so they
   258     # aliases are processed after extensions have been loaded, so they
   255     # may use extension commands. Aliases can also use other alias definitions,
   259     # may use extension commands. Aliases can also use other alias definitions,
   256     # but only if they have been defined prior to the current definition.
   260     # but only if they have been defined prior to the current definition.
   257     for alias, definition in ui.configitems('alias'):
   261     for alias, definition in ui.configitems('alias'):
   258         aliasdef = cmdalias(alias, definition, cmdtable)
   262         aliasdef = cmdalias(alias, definition, cmdtable)
   259         cmdtable[alias] = (aliasdef, aliasdef.opts, aliasdef.help)
   263         cmdtable[aliasdef.cmd] = (aliasdef, aliasdef.opts, aliasdef.help)
   260         if aliasdef.norepo:
   264         if aliasdef.norepo:
   261             commands.norepo += ' %s' % alias
   265             commands.norepo += ' %s' % alias
   262 
   266 
   263 def _parse(ui, args):
   267 def _parse(ui, args):
   264     options = {}
   268     options = {}