help: only call doc() when it is callable stable
authorGregory Szorc <gregory.szorc@gmail.com>
Sat, 30 Aug 2014 20:06:24 +0200
branchstable
changeset 22322 e284de138f00
parent 22317 e1d5fcab58b6
child 22324 5dc91146f353
help: only call doc() when it is callable `hg help -k` on my machine was aborting because the hg-prompt extension was inserting a string and not a function into help.helptable and help was blindly calling it. This patch changes keyword searching to be more robust against unexpected types.
mercurial/help.py
--- a/mercurial/help.py	Sun Aug 31 19:43:03 2014 +0900
+++ b/mercurial/help.py	Sat Aug 30 20:06:24 2014 +0200
@@ -86,9 +86,10 @@
                'extensioncommands': [],
                }
     for names, header, doc in helptable:
+        # Old extensions may use a str as doc.
         if (sum(map(lowercontains, names))
             or lowercontains(header)
-            or lowercontains(doc())):
+            or (callable(doc) and lowercontains(doc()))):
             results['topics'].append((names[0], header))
     import commands # avoid cycle
     for cmd, entry in commands.table.iteritems():