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.
--- 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():