Index: third_party/libxslt/libxslt/templates.c |
=================================================================== |
--- third_party/libxslt/libxslt/templates.c (revision 39981) |
+++ third_party/libxslt/libxslt/templates.c (working copy) |
@@ -637,7 +637,7 @@ |
last = last->next; |
} else { |
last = NULL; |
- } |
+ } |
attr = attrs; |
do { |
/* |
@@ -719,20 +719,20 @@ |
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 @@ |
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 @@ |
} 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: |