Hi Daniel, All,

one of the users of the Perl bindings has noticed that after 
clonning a subtree (using xmlCopyNode internally) the clonned  
XML_XINCLUDE_START (very useful BTW) nodes do not carry their 
original attributes (such as href and xpointer).

The attached patch for tree.c fixes this. I'm not sure if 
XML_XINCLUDE_END can ever carry properties; if not, safely remove 
the 2 corresponding lines from the patch.

Thanks in advance for considering the patch,
-- Petr
--- tree.c~	2006-10-20 14:54:19.000000000 +0200
+++ tree.c	2007-02-01 15:51:30.000000000 +0100
@@ -3915,7 +3915,9 @@
     
     if (!extended)
 	goto out;
-    if ((node->type == XML_ELEMENT_NODE) && (node->nsDef != NULL))
+    if ((node->type == XML_ELEMENT_NODE ||
+	 node->type == XML_XINCLUDE_START ||
+	 node->type == XML_XINCLUDE_END) && (node->nsDef != NULL))
         ret->nsDef = xmlCopyNamespaceList(node->nsDef);
 
     if (node->ns != NULL) {
@@ -3942,7 +3944,9 @@
 	    ret->ns = ns;
 	}
     }
-    if ((node->type == XML_ELEMENT_NODE) && (node->properties != NULL))
+    if ((node->type == XML_ELEMENT_NODE ||
+	 node->type == XML_XINCLUDE_START ||
+	 node->type == XML_XINCLUDE_END) && (node->properties != NULL))
         ret->properties = xmlCopyPropList(ret, node->properties);
     if (node->type == XML_ENTITY_REF_NODE) {
 	if ((doc == NULL) || (node->doc != doc)) {
_______________________________________________
xml mailing list, project page  http://xmlsoft.org/
[email protected]
http://mail.gnome.org/mailman/listinfo/xml

Reply via email to