* gnu/packages/patches/libxml2-parent-pointers.patch, gnu/packages/patches/libxml2-terminating-newline.patch, gnu/packages/patches/libxml2-xpath-recursion-limit.patch: New files. * gnu/packages/patches/python-libxml2-python39-compat.patch: Delete file. * gnu/local.mk (dist_patch_DATA): Adjust accordingly. * gnu/packages/xml.scm (libxml2): Update to 2.9.12. (python-lxml)[source](modules, snippet): New fields.
		
			
				
	
	
		
			33 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
			
		
		
	
	
			33 lines
		
	
	
	
		
			1.2 KiB
		
	
	
	
		
			Diff
		
	
	
	
	
	
| 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;
 | |
|  
 |