Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(162)

Side by Side Diff: third_party/libxml/src/xmlsave.c

Issue 2010803004: Roll libxml to bdec2183f34b37ee89ae1d330c6ad2bb4d76605f (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Update README.chromium Created 4 years, 6 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
« no previous file with comments | « third_party/libxml/src/xmlregexp.c ('k') | third_party/libxml/src/xmlschemas.c » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 /* 1 /*
2 * xmlsave.c: Implemetation of the document serializer 2 * xmlsave.c: Implemetation of the document serializer
3 * 3 *
4 * See Copyright for the status of this software. 4 * See Copyright for the status of this software.
5 * 5 *
6 * daniel@veillard.com 6 * daniel@veillard.com
7 */ 7 */
8 8
9 #define IN_LIBXML 9 #define IN_LIBXML
10 #include "libxml.h" 10 #include "libxml.h"
(...skipping 2079 matching lines...) Expand 10 before | Expand all | Expand 10 after
2090 xmlBufAdd(buf, base, cur - base); 2090 xmlBufAdd(buf, base, cur - base);
2091 xmlBufAdd(buf, BAD_CAST ">", 4); 2091 xmlBufAdd(buf, BAD_CAST ">", 4);
2092 cur++; 2092 cur++;
2093 base = cur; 2093 base = cur;
2094 } else if (*cur == '&') { 2094 } else if (*cur == '&') {
2095 if (base != cur) 2095 if (base != cur)
2096 xmlBufAdd(buf, base, cur - base); 2096 xmlBufAdd(buf, base, cur - base);
2097 xmlBufAdd(buf, BAD_CAST "&", 5); 2097 xmlBufAdd(buf, BAD_CAST "&", 5);
2098 cur++; 2098 cur++;
2099 base = cur; 2099 base = cur;
2100 } else if ((*cur >= 0x80) && ((doc == NULL) || 2100 } else if ((*cur >= 0x80) && (cur[1] != 0) &&
2101 (doc->encoding == NULL))) { 2101 » ((doc == NULL) || (doc->encoding == NULL))) {
2102 /* 2102 /*
2103 * We assume we have UTF-8 content. 2103 * We assume we have UTF-8 content.
2104 */ 2104 */
2105 unsigned char tmp[12]; 2105 unsigned char tmp[12];
2106 int val = 0, l = 1; 2106 int val = 0, l = 1;
2107 2107
2108 if (base != cur) 2108 if (base != cur)
2109 xmlBufAdd(buf, base, cur - base); 2109 xmlBufAdd(buf, base, cur - base);
2110 if (*cur < 0xC0) { 2110 if (*cur < 0xC0) {
2111 xmlSaveErr(XML_SAVE_NOT_UTF8, (xmlNodePtr) attr, NULL); 2111 xmlSaveErr(XML_SAVE_NOT_UTF8, (xmlNodePtr) attr, NULL);
2112 if (doc != NULL) 2112 if (doc != NULL)
2113 doc->encoding = xmlStrdup(BAD_CAST "ISO-8859-1"); 2113 doc->encoding = xmlStrdup(BAD_CAST "ISO-8859-1");
2114 xmlSerializeHexCharRef(tmp, *cur); 2114 xmlSerializeHexCharRef(tmp, *cur);
2115 xmlBufAdd(buf, (xmlChar *) tmp, -1); 2115 xmlBufAdd(buf, (xmlChar *) tmp, -1);
2116 cur++; 2116 cur++;
2117 base = cur; 2117 base = cur;
2118 continue; 2118 continue;
2119 } else if (*cur < 0xE0) { 2119 } else if (*cur < 0xE0) {
2120 val = (cur[0]) & 0x1F; 2120 val = (cur[0]) & 0x1F;
2121 val <<= 6; 2121 val <<= 6;
2122 val |= (cur[1]) & 0x3F; 2122 val |= (cur[1]) & 0x3F;
2123 l = 2; 2123 l = 2;
2124 } else if (*cur < 0xF0) { 2124 } else if ((*cur < 0xF0) && (cur [2] != 0)) {
2125 val = (cur[0]) & 0x0F; 2125 val = (cur[0]) & 0x0F;
2126 val <<= 6; 2126 val <<= 6;
2127 val |= (cur[1]) & 0x3F; 2127 val |= (cur[1]) & 0x3F;
2128 val <<= 6; 2128 val <<= 6;
2129 val |= (cur[2]) & 0x3F; 2129 val |= (cur[2]) & 0x3F;
2130 l = 3; 2130 l = 3;
2131 } else if (*cur < 0xF8) { 2131 } else if ((*cur < 0xF8) && (cur [2] != 0) && (cur[3] != 0)) {
2132 val = (cur[0]) & 0x07; 2132 val = (cur[0]) & 0x07;
2133 val <<= 6; 2133 val <<= 6;
2134 val |= (cur[1]) & 0x3F; 2134 val |= (cur[1]) & 0x3F;
2135 val <<= 6; 2135 val <<= 6;
2136 val |= (cur[2]) & 0x3F; 2136 val |= (cur[2]) & 0x3F;
2137 val <<= 6; 2137 val <<= 6;
2138 val |= (cur[3]) & 0x3F; 2138 val |= (cur[3]) & 0x3F;
2139 l = 4; 2139 l = 4;
2140 } 2140 }
2141 if ((l == 1) || (!IS_CHAR(val))) { 2141 if ((l == 1) || (!IS_CHAR(val))) {
(...skipping 637 matching lines...) Expand 10 before | Expand all | Expand 10 after
2779 */ 2779 */
2780 int 2780 int
2781 xmlSaveFile(const char *filename, xmlDocPtr cur) { 2781 xmlSaveFile(const char *filename, xmlDocPtr cur) {
2782 return(xmlSaveFormatFileEnc(filename, cur, NULL, 0)); 2782 return(xmlSaveFormatFileEnc(filename, cur, NULL, 0));
2783 } 2783 }
2784 2784
2785 #endif /* LIBXML_OUTPUT_ENABLED */ 2785 #endif /* LIBXML_OUTPUT_ENABLED */
2786 2786
2787 #define bottom_xmlsave 2787 #define bottom_xmlsave
2788 #include "elfgcchack.h" 2788 #include "elfgcchack.h"
OLDNEW
« no previous file with comments | « third_party/libxml/src/xmlregexp.c ('k') | third_party/libxml/src/xmlschemas.c » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698