help: fix 'hg help -k' matching an extension without docs
authorThomas Arendsen Hein <thomas@intevation.de>
Thu, 07 Jun 2012 15:54:40 +0200
changeset 16884 4fd1f1d7569b
parent 16881 2255950e1f76
child 16885 d628bcb3a567
help: fix 'hg help -k' matching an extension without docs getattr is not needed, __doc__ always exists and defaults to None
mercurial/help.py
tests/test-help.t
--- a/mercurial/help.py	Wed Jun 06 21:17:33 2012 -0500
+++ b/mercurial/help.py	Thu Jun 07 15:54:40 2012 +0200
@@ -107,8 +107,11 @@
         for cmd, entry in getattr(mod, 'cmdtable', {}).iteritems():
             if kw in cmd or (len(entry) > 2 and lowercontains(entry[2])):
                 cmdname = cmd.split('|')[0].lstrip('^')
-                cmddoc=getattr(mod, '__doc__', '').splitlines()[0]
-                results['extensioncommands'].append((cmdname, _(cmddoc)))
+                if mod.__doc__:
+                    cmddoc = gettext(mod.__doc__).splitlines()[0]
+                else:
+                    cmddoc = _('(no help text available)')
+                results['extensioncommands'].append((cmdname, cmddoc))
     return results
 
 def loaddoc(topic):
--- a/tests/test-help.t	Wed Jun 06 21:17:33 2012 -0500
+++ b/tests/test-help.t	Thu Jun 07 15:54:40 2012 +0200
@@ -598,6 +598,15 @@
   
   use "hg -v help nohelp" to show more info
 
+  $ hg help -k nohelp
+  Commands:
+  
+   nohelp hg nohelp
+  
+  Extension Commands:
+  
+   nohelp (no help text available)
+
 Test that default list of commands omits extension commands
 
   $ hg help