diff mercurial/help.py @ 39336:0a766cb1092a

help: reorder section filtering flow to not format help text twice
author Yuya Nishihara <yuya@tcha.org>
date Sun, 05 Aug 2018 12:20:43 +0900
parents 9b800601701c
children d30867a745a1
line wrap: on
line diff
--- a/mercurial/help.py	Sun Aug 05 12:06:07 2018 +0900
+++ b/mercurial/help.py	Sun Aug 05 12:20:43 2018 +0900
@@ -673,16 +673,6 @@
                  subtopic=subtopic, unknowncmd=unknowncmd, full=full, **opts)
 
     blocks, pruned = minirst.parse(text, keep=keep)
-    if section:
-        blocks = minirst.filtersections(blocks, section)
-    formatted = minirst.formatplain(blocks, textwidth)
-
-    # We could have been given a weird ".foo" section without a name
-    # to look for, or we could have simply failed to found "foo.bar"
-    # because bar isn't a section of foo
-    if section and not (formatted and name):
-        raise error.Abort(_("help section not found: %s") % fullname)
-
     if 'verbose' in pruned:
         keep.append('omitted')
     else:
@@ -690,4 +680,11 @@
     blocks, pruned = minirst.parse(text, keep=keep)
     if section:
         blocks = minirst.filtersections(blocks, section)
+
+    # We could have been given a weird ".foo" section without a name
+    # to look for, or we could have simply failed to found "foo.bar"
+    # because bar isn't a section of foo
+    if section and not (blocks and name):
+        raise error.Abort(_("help section not found: %s") % fullname)
+
     return minirst.formatplain(blocks, textwidth)