mercurial/help.py
changeset 27378 c709b515218e
parent 27377 d1c998d7b103
child 27379 2278870bb997
equal deleted inserted replaced
27377:d1c998d7b103 27378:c709b515218e
   261     'name' is None, describe the commands available.
   261     'name' is None, describe the commands available.
   262     '''
   262     '''
   263 
   263 
   264     import commands # avoid cycle
   264     import commands # avoid cycle
   265 
   265 
   266     def helpcmd(name):
   266     def helpcmd(name, subtopic=None):
   267         try:
   267         try:
   268             aliases, entry = cmdutil.findcmd(name, commands.table,
   268             aliases, entry = cmdutil.findcmd(name, commands.table,
   269                                              strict=unknowncmd)
   269                                              strict=unknowncmd)
   270         except error.AmbiguousCommand as inst:
   270         except error.AmbiguousCommand as inst:
   271             # py3k fix: except vars can't be used outside the scope of the
   271             # py3k fix: except vars can't be used outside the scope of the
   430                 rst.append(_('\n(use "hg help -v%s" to show built-in aliases '
   430                 rst.append(_('\n(use "hg help -v%s" to show built-in aliases '
   431                              'and global options)\n')
   431                              'and global options)\n')
   432                            % (name and " " + name or ""))
   432                            % (name and " " + name or ""))
   433         return rst
   433         return rst
   434 
   434 
   435     def helptopic(name):
   435     def helptopic(name, subtopic=None):
   436         for names, header, doc in helptable:
   436         for names, header, doc in helptable:
   437             if name in names:
   437             if name in names:
   438                 break
   438                 break
   439         else:
   439         else:
   440             raise error.UnknownCommand(name)
   440             raise error.UnknownCommand(name)
   458                        'the %s command\n') % (name, name))
   458                        'the %s command\n') % (name, name))
   459         except error.UnknownCommand:
   459         except error.UnknownCommand:
   460             pass
   460             pass
   461         return rst
   461         return rst
   462 
   462 
   463     def helpext(name):
   463     def helpext(name, subtopic=None):
   464         try:
   464         try:
   465             mod = extensions.find(name)
   465             mod = extensions.find(name)
   466             doc = gettext(mod.__doc__) or _('no help text available')
   466             doc = gettext(mod.__doc__) or _('no help text available')
   467         except KeyError:
   467         except KeyError:
   468             mod = None
   468             mod = None
   494         else:
   494         else:
   495             rst.append(_('(use "hg help extensions" for information on enabling'
   495             rst.append(_('(use "hg help extensions" for information on enabling'
   496                        ' extensions)\n'))
   496                        ' extensions)\n'))
   497         return rst
   497         return rst
   498 
   498 
   499     def helpextcmd(name):
   499     def helpextcmd(name, subtopic=None):
   500         cmd, ext, mod = extensions.disabledcmd(ui, name,
   500         cmd, ext, mod = extensions.disabledcmd(ui, name,
   501                                                ui.configbool('ui', 'strict'))
   501                                                ui.configbool('ui', 'strict'))
   502         doc = gettext(mod.__doc__).splitlines()[0]
   502         doc = gettext(mod.__doc__).splitlines()[0]
   503 
   503 
   504         rst = listexts(_("'%s' is provided by the following "
   504         rst = listexts(_("'%s' is provided by the following "
   543             queries += [helpcmd]
   543             queries += [helpcmd]
   544         if not queries:
   544         if not queries:
   545             queries = (helptopic, helpcmd, helpext, helpextcmd)
   545             queries = (helptopic, helpcmd, helpext, helpextcmd)
   546         for f in queries:
   546         for f in queries:
   547             try:
   547             try:
   548                 rst = f(name)
   548                 rst = f(name, subtopic)
   549                 break
   549                 break
   550             except error.UnknownCommand:
   550             except error.UnknownCommand:
   551                 pass
   551                 pass
   552         else:
   552         else:
   553             if unknowncmd:
   553             if unknowncmd: