diff options
author | Mike Hommey <glandium@debian.org> | 2005-03-27 13:13:58 +0000 |
---|---|---|
committer | Mike Hommey <glandium@debian.org> | 2005-03-27 13:13:58 +0000 |
commit | 50e5b428562964b1eb2f876370058b34b47c5e90 (patch) | |
tree | c66bcae6dbbce07128ee881353ff60090524462c /xmlwriter.c | |
parent | a7457388701e6ccba9091ba3ec09505dc903b758 (diff) | |
download | libxml2-50e5b428562964b1eb2f876370058b34b47c5e90.tar.gz |
Load /tmp/tmp.XJZ6qc/libxml2-2.6.18 intoupstream/2.6.18
packages/libxml2/branches/upstream/current.
Diffstat (limited to 'xmlwriter.c')
-rw-r--r-- | xmlwriter.c | 26 |
1 files changed, 22 insertions, 4 deletions
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; |