[libxslt] Fix an idness generation problem



commit ff6923ecd5a96f4425adb9ffaac067b941c96be8
Author: Daniel Veillard <veillard redhat com>
Date:   Thu Sep 24 14:04:17 2009 +0200

    Fix an idness generation problem
    
    * libxslt/templates.c: when copying attributes coming from the
      stylesheet IDness was not asserted, though with xml:id this is now
      possible.

 libxslt/templates.c |   15 +++++++++------
 1 files changed, 9 insertions(+), 6 deletions(-)
---
diff --git a/libxslt/templates.c b/libxslt/templates.c
index 8d26a8a..c6250dc 100644
--- a/libxslt/templates.c
+++ b/libxslt/templates.c
@@ -637,7 +637,7 @@ xsltAttrListTemplateProcess(xsltTransformContextPtr ctxt,
 	    last = last->next;
     } else {
 	last = NULL;
-    }    
+    }
     attr = attrs;
     do {
 	/*
@@ -719,20 +719,20 @@ xsltAttrListTemplateProcess(xsltTransformContextPtr ctxt,
 		copyNs = NULL;
 	}
 	copy->ns = copyNs;
-	
+
 	/*
 	* Set the value.
-	*/	    
+	*/
 	text = xmlNewText(NULL);
 	if (text != NULL) {
 	    copy->last = copy->children = text;
 	    text->parent = (xmlNodePtr) copy;
 	    text->doc = copy->doc;
-	    
+
 	    if (attr->psvi != NULL) {
 		/*
 		* Evaluate the Attribute Value Template.
-		*/		
+		*/
 		valueAVT = xsltEvalAVT(ctxt, attr->psvi, attr->parent);
 		if (valueAVT == NULL) {
 		    /*
@@ -743,7 +743,7 @@ xsltAttrListTemplateProcess(xsltTransformContextPtr ctxt,
 			xsltTransformError(ctxt, NULL, attr->parent,
 			    "Internal error: Failed to evaluate the AVT "
 			    "of attribute '{%s}%s'.\n",
-			    attr->ns->href, attr->name);			    
+			    attr->ns->href, attr->name);
 		    } else {
 			xsltTransformError(ctxt, NULL, attr->parent,
 			    "Internal error: Failed to evaluate the AVT "
@@ -763,6 +763,9 @@ xsltAttrListTemplateProcess(xsltTransformContextPtr ctxt,
 	    } else {
 		text->content = xmlStrdup(value);
 	    }
+            if ((copy != NULL) && (text != NULL) &&
+                (xmlIsID(copy->doc, copy->parent, copy)))
+                xmlAddID(NULL, copy->doc, text->content, copy);
 	}
 
 next_attribute:



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