summary refs log tree commit diff
path: root/gnu/packages/patches/libxml2-terminating-newline.patch
blob: 3f5c88dd4e06b9d4550df2b40b2dae06ef177673 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
Fix a regression in 2.9.12 where serializing empty HTML documents would
not add a terminating newline.

  https://gitlab.gnome.org/GNOME/libxml2/-/issues/266

Taken from upstream:

  https://gitlab.gnome.org/GNOME/libxml2/-/commit/92d9ab4c28842a09ca2b76d3ff2f933e01b6cd6f

diff --git a/HTMLtree.c b/HTMLtree.c
--- a/HTMLtree.c
+++ b/HTMLtree.c
@@ -763,11 +763,15 @@ htmlNodeDumpFormatOutput(xmlOutputBufferPtr buf, xmlDocPtr doc,
             if (((xmlDocPtr) cur)->intSubset != NULL) {
                 htmlDtdDumpOutput(buf, (xmlDocPtr) cur, NULL);
             }
-            /* Always validate cur->parent when descending. */
-            if ((cur->parent == parent) && (cur->children != NULL)) {
-                parent = cur;
-                cur = cur->children;
-                continue;
+            if (cur->children != NULL) {
+                /* Always validate cur->parent when descending. */
+                if (cur->parent == parent) {
+                    parent = cur;
+                    cur = cur->children;
+                    continue;
+                }
+            } else {
+                xmlOutputBufferWriteString(buf, "\n");
             }
             break;