krb5 commit [krb5-1.11]: Handle adjacent notes from doxygen more correctly

Tom Yu tlyu at MIT.EDU
Thu Nov 29 16:04:09 EST 2012


https://github.com/krb5/krb5/commit/c54d1d86d9809f35a4b4f9e4e6ac898c695ed404
commit c54d1d86d9809f35a4b4f9e4e6ac898c695ed404
Author: Ben Kaduk <kaduk at mit.edu>
Date:   Thu Nov 15 16:27:57 2012 -0500

    Handle adjacent notes from doxygen more correctly
    
    The Doxygen documentation seems to claim that adjacent @note entries
    will be collapsed into a single "note" element, as separate paragraphs.
    This seems to be reflected in the XML output: multiple <para> entries
    in a single <simplesec kind="note"> with a <simplesecsep/> element
    between them.
    
    Our XML-to-RST converter gets the entire contents of the simplesec
    element, parsed into a unicode string with a single newline between
    paragraphs.  Paragraphs seem to always start with two spaces, though
    I have not tracked down the origin of this behavior.  Prior to this
    commit, we would just output this entire unicode string directly.
    Since our template puts a tab character before the note string, this
    means that the first paragraph is indented by a tab and two spaces,
    and the second paragraph by just two spaces.  Sphinx warns about this,
    as "block did not end with blank line; unexpected whitespace", and
    the paragraphs are indented differently within the note.
    
    Fix the warning by checking for newlines in the interior of the
    parsed unicode string, and introducing the appropriate whitespace
    for the Sphinx parser.
    
    (cherry picked from commit 484ac9228b317b96a81c9e88778c521c54d49213)
    
    ticket: 7447

 doc/tools/doxybuilder_funcs.py |    3 ++-
 1 files changed, 2 insertions(+), 1 deletions(-)

diff --git a/doc/tools/doxybuilder_funcs.py b/doc/tools/doxybuilder_funcs.py
index 13331f8..7e54750 100644
--- a/doc/tools/doxybuilder_funcs.py
+++ b/doc/tools/doxybuilder_funcs.py
@@ -503,7 +503,8 @@ class DoxyFuncs(XML2AST):
     def return_notes_decorator(self, node, value):
         if node.name == 'simplesect':
             if node.attributes['kind'] == 'note':
-                return value
+                # We indent notes with an extra tab.  Do it for all paragraphs.
+                return value.replace("\n  ", "\n\n\t  ");
         else:
             return None
 


More information about the cvs-krb5 mailing list