[libxml2] Fix regression in xmlNodeDumpOutputInternal



commit 13ad8736d294536da4cbcd70a96b0a2fbf47070c
Author: Nick Wellnhofer <wellnhofer aevum de>
Date:   Tue May 25 10:55:25 2021 +0200

    Fix regression in xmlNodeDumpOutputInternal
    
    Commit 85b1792e could cause additional whitespace if xmlNodeDump was
    called with a non-zero starting level.

 xmlsave.c | 14 +++++++-------
 1 file changed, 7 insertions(+), 7 deletions(-)
---
diff --git a/xmlsave.c b/xmlsave.c
index aedbd5e7..489505f4 100644
--- a/xmlsave.c
+++ b/xmlsave.c
@@ -890,6 +890,13 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
             break;
 
         case XML_ELEMENT_NODE:
+           if ((cur != root) && (ctxt->format == 1) &&
+                (xmlIndentTreeOutput))
+               xmlOutputBufferWrite(buf, ctxt->indent_size *
+                                    (ctxt->level > ctxt->indent_nr ?
+                                     ctxt->indent_nr : ctxt->level),
+                                    ctxt->indent);
+
             /*
              * Some users like lxml are known to pass nodes with a corrupted
              * tree structure. Fall back to a recursive call to handle this
@@ -900,13 +907,6 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
                 break;
             }
 
-           if ((ctxt->level > 0) && (ctxt->format == 1) &&
-                (xmlIndentTreeOutput))
-               xmlOutputBufferWrite(buf, ctxt->indent_size *
-                                    (ctxt->level > ctxt->indent_nr ?
-                                     ctxt->indent_nr : ctxt->level),
-                                    ctxt->indent);
-
             xmlOutputBufferWrite(buf, 1, "<");
             if ((cur->ns != NULL) && (cur->ns->prefix != NULL)) {
                 xmlOutputBufferWriteString(buf, (const char *)cur->ns->prefix);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]