[libxslt] Output should not include extraneous newlines when indent is off



commit 1eae5e8cbcad26415fe229885244316387bc15d9
Author: Laurence Rowe <l lrowe co uk>
Date:   Thu Jun 16 18:44:06 2011 +0100

    Output should not include extraneous newlines when indent is off
    
    Hence matching behaviour of xmlSaveOption XML_SAVE_FORMAT off.
    This affects only one of the regression tests

 libxslt/xsltutils.c       |    7 ++++---
 tests/docs/bug-173.xml    |    1 +
 tests/general/Makefile.am |    1 +
 tests/general/bug-173.out |    1 +
 tests/general/bug-173.xsl |   11 +++++++++++
 tests/keys/month.out      |    2 +-
 6 files changed, 19 insertions(+), 4 deletions(-)
---
diff --git a/libxslt/xsltutils.c b/libxslt/xsltutils.c
index 4ee124c..bc94266 100644
--- a/libxslt/xsltutils.c
+++ b/libxslt/xsltutils.c
@@ -1587,13 +1587,14 @@ xsltSaveResultTo(xmlOutputBufferPtr buf, xmlDocPtr result,
 	    while (child != NULL) {
 		xmlNodeDumpOutput(buf, result, child, 0, (indent == 1),
 			          (const char *) encoding);
-		if ((child->type == XML_DTD_NODE) ||
+		if (indent && ((child->type == XML_DTD_NODE) ||
 		    ((child->type == XML_COMMENT_NODE) &&
-		     (child->next != NULL)))
+		     (child->next != NULL))))
 		    xmlOutputBufferWriteString(buf, "\n");
 		child = child->next;
 	    }
-	    xmlOutputBufferWriteString(buf, "\n");
+	    if (indent)
+			xmlOutputBufferWriteString(buf, "\n");
 	}
 	xmlOutputBufferFlush(buf);
     }
diff --git a/tests/docs/bug-173.xml b/tests/docs/bug-173.xml
new file mode 100644
index 0000000..f3f286e
--- /dev/null
+++ b/tests/docs/bug-173.xml
@@ -0,0 +1 @@
+<root/>
diff --git a/tests/general/Makefile.am b/tests/general/Makefile.am
index b6c738b..f7fdea9 100644
--- a/tests/general/Makefile.am
+++ b/tests/general/Makefile.am
@@ -180,6 +180,7 @@ EXTRA_DIST = \
     bug-170.out bug-170.xsl \
     bug-171.out bug-171.xsl \
     bug-172.out bug-172.xsl \
+    bug-173.out bug-173.xsl \
     character.out character.xsl \
     character2.out character2.xsl \
     itemschoose.out itemschoose.xsl \
diff --git a/tests/general/bug-173.out b/tests/general/bug-173.out
new file mode 100644
index 0000000..d39c5bc
--- /dev/null
+++ b/tests/general/bug-173.out
@@ -0,0 +1 @@
+<!--Comment--><root/>
\ No newline at end of file
diff --git a/tests/general/bug-173.xsl b/tests/general/bug-173.xsl
new file mode 100644
index 0000000..deb89e8
--- /dev/null
+++ b/tests/general/bug-173.xsl
@@ -0,0 +1,11 @@
+<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform";>
+
+<xsl:output indent="no" omit-xml-declaration="yes"/>
+
+<xsl:template match="/">
+  <!-- Output should not include extraneous newlines when indent is off -->
+  <xsl:comment>Comment</xsl:comment>
+  <root/>
+</xsl:template>
+
+</xsl:stylesheet>
\ No newline at end of file
diff --git a/tests/keys/month.out b/tests/keys/month.out
index 99c3a3d..088c1c7 100644
--- a/tests/keys/month.out
+++ b/tests/keys/month.out
@@ -4,4 +4,4 @@
   <month>December</month>
   <month>December</month>
   <month/>
-</dates>
+</dates>
\ No newline at end of file



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