summaryrefslogtreecommitdiffstats
path: root/third_party/libxml/xmlsave.c
diff options
context:
space:
mode:
authormaruel@google.com <maruel@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-08-08 19:12:46 +0000
committermaruel@google.com <maruel@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2008-08-08 19:12:46 +0000
commit505115c27f5454df0878407c7706c7f1c3744b0d (patch)
treedf43feb18444d5be3bf35ed3ee16156d49e17776 /third_party/libxml/xmlsave.c
parente8c2172aa23158985682d232cf290593b8206b90 (diff)
downloadchromium_src-505115c27f5454df0878407c7706c7f1c3744b0d.zip
chromium_src-505115c27f5454df0878407c7706c7f1c3744b0d.tar.gz
chromium_src-505115c27f5454df0878407c7706c7f1c3744b0d.tar.bz2
Updates libxml to 2.6.32. Updated google.patch and README.google
BUG=1300342 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@581 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'third_party/libxml/xmlsave.c')
-rw-r--r--third_party/libxml/xmlsave.c32
1 files changed, 18 insertions, 14 deletions
diff --git a/third_party/libxml/xmlsave.c b/third_party/libxml/xmlsave.c
index cbabd78..2a61577 100644
--- a/third_party/libxml/xmlsave.c
+++ b/third_party/libxml/xmlsave.c
@@ -727,8 +727,8 @@ xmlNodeDumpOutputInternal(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
return;
}
if (cur->type == XML_CDATA_SECTION_NODE) {
- if (cur->content == NULL) {
- xmlOutputBufferWrite(buf, 12, "<![CDATA[]]>");
+ if (cur->content == NULL || *cur->content == '\0') {
+ xmlOutputBufferWrite(buf, 12, "<![CDATA[]]>");
} else {
start = end = cur->content;
while (*end != '\0') {
@@ -1236,21 +1236,25 @@ xhtmlNodeDumpOutput(xmlSaveCtxtPtr ctxt, xmlNodePtr cur) {
return;
}
if (cur->type == XML_CDATA_SECTION_NODE) {
- start = end = cur->content;
- while (*end != '\0') {
- if (*end == ']' && *(end + 1) == ']' && *(end + 2) == '>') {
- end = end + 2;
+ if (cur->content == NULL || *cur->content == '\0') {
+ xmlOutputBufferWrite(buf, 12, "<![CDATA[]]>");
+ } else {
+ start = end = cur->content;
+ while (*end != '\0') {
+ if (*end == ']' && *(end + 1) == ']' && *(end + 2) == '>') {
+ end = end + 2;
+ xmlOutputBufferWrite(buf, 9, "<![CDATA[");
+ xmlOutputBufferWrite(buf, end - start, (const char *)start);
+ xmlOutputBufferWrite(buf, 3, "]]>");
+ start = end;
+ }
+ end++;
+ }
+ if (start != end) {
xmlOutputBufferWrite(buf, 9, "<![CDATA[");
- xmlOutputBufferWrite(buf, end - start, (const char *)start);
+ xmlOutputBufferWriteString(buf, (const char *)start);
xmlOutputBufferWrite(buf, 3, "]]>");
- start = end;
}
- end++;
- }
- if (start != end) {
- xmlOutputBufferWrite(buf, 9, "<![CDATA[");
- xmlOutputBufferWriteString(buf, (const char *)start);
- xmlOutputBufferWrite(buf, 3, "]]>");
}
return;
}