[PATCH] minirst: don't treat top level item as children of last item (issue4803)

timeless at mozdev.org timeless at mozdev.org
Wed Sep 2 17:28:47 UTC 2015


# HG changeset patch
# User timeless at mozdev.org
# Date 1441214395 14400
#      Wed Sep 02 13:19:55 2015 -0400
# Node ID 45c766a13796d01a02cc13fe1d8fdcaa155c6f93
# Parent  f77a3f27cea533232dc107a72773e90e2de9549d
minirst: don't treat top level item as children of last item (issue4803)

test for "hg help -c config" in help config

diff --git a/mercurial/minirst.py b/mercurial/minirst.py
--- a/mercurial/minirst.py
+++ b/mercurial/minirst.py
@@ -727,6 +727,21 @@
             if not secs:
                 # add an initial empty section
                 secs = [('', 0, [])]
+            if b['type'] != 'margin':
+                pointer = 1
+                bindent = b['indent']
+                while pointer < len(secs):
+                    section = secs[-pointer][2][0]
+                    if section['type'] != 'margin':
+                        sindent = section['indent']
+                        if len(section['lines']) > 1:
+                            sindent += len(section['lines'][1]) - \
+                              len(section['lines'][1].lstrip(' '))
+                        if bindent >= sindent:
+                            break
+                    pointer += 1
+                if pointer > 1:
+                    secs.append(('', secs[-pointer][1] + 1, []))
             secs[-1][2].append(b)
     return secs
 
diff --git a/tests/test-help.t b/tests/test-help.t
--- a/tests/test-help.t
+++ b/tests/test-help.t
@@ -922,6 +922,23 @@
       "smtp.host"
           Host name of mail server, e.g. "mail.example.com".
   
+Help subsection:
+
+  $ hg help config.charsets |grep "Email example:"|wc -l
+         0
+
+Last item in help config.*:
+
+  $ hg help config.$(hg help config|grep '^    "'| \
+  >       tail -1|sed 's![ "]*!!g')| \
+  >   grep "hg help -c config"|wc -l
+         0
+
+note to use help -c for general hg help config:
+
+  $ hg help config |grep "hg help -c config"|wc -l
+         1
+
 Test templating help
 
   $ hg help templating | egrep '(desc|diffstat|firstline|nonempty)  '


More information about the Mercurial-devel mailing list