From 50e5b428562964b1eb2f876370058b34b47c5e90 Mon Sep 17 00:00:00 2001 From: Mike Hommey Date: Sun, 27 Mar 2005 13:13:58 +0000 Subject: Load /tmp/tmp.XJZ6qc/libxml2-2.6.18 into packages/libxml2/branches/upstream/current. --- xmlwriter.c | 26 ++++++++++++++++++++++---- 1 file changed, 22 insertions(+), 4 deletions(-) (limited to 'xmlwriter.c') diff --git a/xmlwriter.c b/xmlwriter.c index 099d3f0..76d7549 100644 --- a/xmlwriter.c +++ b/xmlwriter.c @@ -936,6 +936,12 @@ xmlTextWriterStartElement(xmlTextWriterPtr writer, const xmlChar * name) return -1; case XML_TEXTWRITER_NONE: break; + case XML_TEXTWRITER_ATTRIBUTE: + count = xmlTextWriterEndAttribute(writer); + if (count < 0) + return -1; + sum += count; + /* fallthrough */ case XML_TEXTWRITER_NAME: count = xmlOutputBufferWriteString(writer->out, ">"); if (count < 0) @@ -1832,12 +1838,26 @@ xmlTextWriterEndAttribute(xmlTextWriterPtr writer) sum += count; while (!xmlListEmpty(writer->nsstack)) { + xmlChar *namespaceURI = NULL; + xmlChar *prefix = NULL; + lk = xmlListFront(writer->nsstack); np = (xmlTextWriterNsStackEntry *) xmlLinkGetData(lk); + + if (np != 0) { + namespaceURI = xmlStrdup(np->uri); + prefix = xmlStrdup(np->prefix); + } + + xmlListPopFront(writer->nsstack); + if (np != 0) { count = - xmlTextWriterWriteAttribute(writer, np->prefix, - np->uri); + xmlTextWriterWriteAttribute(writer, prefix, + namespaceURI); + xmlFree(namespaceURI); + xmlFree(prefix); + if (count < 0) { xmlListDelete(writer->nsstack); writer->nsstack = NULL; @@ -1845,8 +1865,6 @@ xmlTextWriterEndAttribute(xmlTextWriterPtr writer) } sum += count; } - - xmlListPopFront(writer->nsstack); } break; -- cgit v1.2.3