mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-07-29 11:41:22 +03:00
Various contributed patches:
- uri.c: applied patch for URI escaping from Wayne Davison <wayned@blorf.net> - tree.c parserInternals.c HTMLparser.c: memset checks patches from Denis Barbier <barbier@imacs.polytechnique.fr> - HTMLparser.c: UTF8 characters in HTML tag-attribute values patch from Wayne Davison Daniel
This commit is contained in:
@ -1,3 +1,12 @@
|
||||
Tue Sep 19 14:20:10 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
|
||||
|
||||
* uri.c: applied patch for URI escaping from Wayne Davison
|
||||
<wayned@blorf.net>
|
||||
* tree.c parserInternals.c HTMLparser.c: memset checks patches
|
||||
from Denis Barbier <barbier@imacs.polytechnique.fr>
|
||||
* HTMLparser.c: UTF8 characters in HTML tag-attribute values
|
||||
patch from Wayne Davison
|
||||
|
||||
Sun Sep 17 18:37:03 CEST 2000 Daniel Veillard <Daniel.Veillard@w3.org>
|
||||
|
||||
* doc/xml.html : updated with new releases, adding "how to help"
|
||||
|
@ -1970,7 +1970,7 @@ htmlParseHTMLAttribute(htmlParserCtxtPtr ctxt, const xmlChar stop) {
|
||||
}
|
||||
} else {
|
||||
unsigned int c;
|
||||
int bits;
|
||||
int bits, l;
|
||||
|
||||
if (out - buffer > buffer_size - 100) {
|
||||
int index = out - buffer;
|
||||
@ -1978,7 +1978,7 @@ htmlParseHTMLAttribute(htmlParserCtxtPtr ctxt, const xmlChar stop) {
|
||||
growBuffer(buffer);
|
||||
out = &buffer[index];
|
||||
}
|
||||
c = CUR;
|
||||
c = CUR_CHAR(l);
|
||||
if (c < 0x80)
|
||||
{ *out++ = c; bits= -6; }
|
||||
else if (c < 0x800)
|
||||
@ -3526,7 +3526,8 @@ htmlInitParserCtxt(htmlParserCtxtPtr ctxt)
|
||||
if (sax == NULL) {
|
||||
fprintf(stderr, "htmlInitParserCtxt: out of memory\n");
|
||||
}
|
||||
memset(sax, 0, sizeof(htmlSAXHandler));
|
||||
else
|
||||
memset(sax, 0, sizeof(htmlSAXHandler));
|
||||
|
||||
/* Allocate the Input stack */
|
||||
ctxt->inputTab = (htmlParserInputPtr *)
|
||||
|
@ -2054,7 +2054,8 @@ xmlInitParserCtxt(xmlParserCtxtPtr ctxt)
|
||||
if (sax == NULL) {
|
||||
fprintf(stderr, "xmlInitParserCtxt: out of memory\n");
|
||||
}
|
||||
memset(sax, 0, sizeof(xmlSAXHandler));
|
||||
else
|
||||
memset(sax, 0, sizeof(xmlSAXHandler));
|
||||
|
||||
/* Allocate the Input stack */
|
||||
ctxt->inputTab = (xmlParserInputPtr *) xmlMalloc(5 * sizeof(xmlParserInputPtr));
|
||||
|
1
tree.c
1
tree.c
@ -3959,6 +3959,7 @@ xmlBufferFree(xmlBufferPtr buf) {
|
||||
*/
|
||||
void
|
||||
xmlBufferEmpty(xmlBufferPtr buf) {
|
||||
if (buf->content == NULL) return;
|
||||
buf->use = 0;
|
||||
memset(buf->content, -1, buf->size);/* just for debug */
|
||||
}
|
||||
|
138
uri.c
138
uri.c
@ -254,26 +254,11 @@ xmlSaveUri(xmlURIPtr uri) {
|
||||
((*(p) == '+')) || ((*(p) == '$')) || ((*(p) == ',')))
|
||||
ret[len++] = *p++;
|
||||
else {
|
||||
int val = *p++;
|
||||
int val = *(unsigned char *)p++;
|
||||
int hi = val / 0x10, lo = val % 0x10;
|
||||
ret[len++] = '%';
|
||||
switch (val / 0x10) {
|
||||
case 0xF: ret[len++] = 'F'; break;
|
||||
case 0xE: ret[len++] = 'E'; break;
|
||||
case 0xD: ret[len++] = 'D'; break;
|
||||
case 0xC: ret[len++] = 'C'; break;
|
||||
case 0xB: ret[len++] = 'B'; break;
|
||||
case 0xA: ret[len++] = 'A'; break;
|
||||
default: ret[len++] = '0' + (val / 0x10);
|
||||
}
|
||||
switch (val % 0x10) {
|
||||
case 0xF: ret[len++] = 'F'; break;
|
||||
case 0xE: ret[len++] = 'E'; break;
|
||||
case 0xD: ret[len++] = 'D'; break;
|
||||
case 0xC: ret[len++] = 'C'; break;
|
||||
case 0xB: ret[len++] = 'B'; break;
|
||||
case 0xA: ret[len++] = 'A'; break;
|
||||
default: ret[len++] = '0' + (val % 0x10);
|
||||
}
|
||||
ret[len++] = hi + (hi > 9? 'A'-10 : '0');
|
||||
ret[len++] = lo + (lo > 9? 'A'-10 : '0');
|
||||
}
|
||||
}
|
||||
if (len >= max) {
|
||||
@ -314,26 +299,11 @@ xmlSaveUri(xmlURIPtr uri) {
|
||||
((*(p) == ',')))
|
||||
ret[len++] = *p++;
|
||||
else {
|
||||
int val = *p++;
|
||||
int val = *(unsigned char *)p++;
|
||||
int hi = val / 0x10, lo = val % 0x10;
|
||||
ret[len++] = '%';
|
||||
switch (val / 0x10) {
|
||||
case 0xF: ret[len++] = 'F'; break;
|
||||
case 0xE: ret[len++] = 'E'; break;
|
||||
case 0xD: ret[len++] = 'D'; break;
|
||||
case 0xC: ret[len++] = 'C'; break;
|
||||
case 0xB: ret[len++] = 'B'; break;
|
||||
case 0xA: ret[len++] = 'A'; break;
|
||||
default: ret[len++] = '0' + (val / 0x10);
|
||||
}
|
||||
switch (val % 0x10) {
|
||||
case 0xF: ret[len++] = 'F'; break;
|
||||
case 0xE: ret[len++] = 'E'; break;
|
||||
case 0xD: ret[len++] = 'D'; break;
|
||||
case 0xC: ret[len++] = 'C'; break;
|
||||
case 0xB: ret[len++] = 'B'; break;
|
||||
case 0xA: ret[len++] = 'A'; break;
|
||||
default: ret[len++] = '0' + (val % 0x10);
|
||||
}
|
||||
ret[len++] = hi + (hi > 9? 'A'-10 : '0');
|
||||
ret[len++] = lo + (lo > 9? 'A'-10 : '0');
|
||||
}
|
||||
}
|
||||
if (len + 3 >= max) {
|
||||
@ -396,26 +366,11 @@ xmlSaveUri(xmlURIPtr uri) {
|
||||
((*(p) == '=')) || ((*(p) == '+')))
|
||||
ret[len++] = *p++;
|
||||
else {
|
||||
int val = *p++;
|
||||
int val = *(unsigned char *)p++;
|
||||
int hi = val / 0x10, lo = val % 0x10;
|
||||
ret[len++] = '%';
|
||||
switch (val / 0x10) {
|
||||
case 0xF: ret[len++] = 'F'; break;
|
||||
case 0xE: ret[len++] = 'E'; break;
|
||||
case 0xD: ret[len++] = 'D'; break;
|
||||
case 0xC: ret[len++] = 'C'; break;
|
||||
case 0xB: ret[len++] = 'B'; break;
|
||||
case 0xA: ret[len++] = 'A'; break;
|
||||
default: ret[len++] = '0' + (val / 0x10);
|
||||
}
|
||||
switch (val % 0x10) {
|
||||
case 0xF: ret[len++] = 'F'; break;
|
||||
case 0xE: ret[len++] = 'E'; break;
|
||||
case 0xD: ret[len++] = 'D'; break;
|
||||
case 0xC: ret[len++] = 'C'; break;
|
||||
case 0xB: ret[len++] = 'B'; break;
|
||||
case 0xA: ret[len++] = 'A'; break;
|
||||
default: ret[len++] = '0' + (val % 0x10);
|
||||
}
|
||||
ret[len++] = hi + (hi > 9? 'A'-10 : '0');
|
||||
ret[len++] = lo + (lo > 9? 'A'-10 : '0');
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -436,26 +391,11 @@ xmlSaveUri(xmlURIPtr uri) {
|
||||
((*(p) == ',')))
|
||||
ret[len++] = *p++;
|
||||
else {
|
||||
int val = *p++;
|
||||
int val = *(unsigned char *)p++;
|
||||
int hi = val / 0x10, lo = val % 0x10;
|
||||
ret[len++] = '%';
|
||||
switch (val / 0x10) {
|
||||
case 0xF: ret[len++] = 'F'; break;
|
||||
case 0xE: ret[len++] = 'E'; break;
|
||||
case 0xD: ret[len++] = 'D'; break;
|
||||
case 0xC: ret[len++] = 'C'; break;
|
||||
case 0xB: ret[len++] = 'B'; break;
|
||||
case 0xA: ret[len++] = 'A'; break;
|
||||
default: ret[len++] = '0' + (val / 0x10);
|
||||
}
|
||||
switch (val % 0x10) {
|
||||
case 0xF: ret[len++] = 'F'; break;
|
||||
case 0xE: ret[len++] = 'E'; break;
|
||||
case 0xD: ret[len++] = 'D'; break;
|
||||
case 0xC: ret[len++] = 'C'; break;
|
||||
case 0xB: ret[len++] = 'B'; break;
|
||||
case 0xA: ret[len++] = 'A'; break;
|
||||
default: ret[len++] = '0' + (val % 0x10);
|
||||
}
|
||||
ret[len++] = hi + (hi > 9? 'A'-10 : '0');
|
||||
ret[len++] = lo + (lo > 9? 'A'-10 : '0');
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -482,26 +422,11 @@ xmlSaveUri(xmlURIPtr uri) {
|
||||
if ((IS_UNRESERVED(*(p))) || (IS_RESERVED(*(p))))
|
||||
ret[len++] = *p++;
|
||||
else {
|
||||
int val = *p++;
|
||||
int val = *(unsigned char *)p++;
|
||||
int hi = val / 0x10, lo = val % 0x10;
|
||||
ret[len++] = '%';
|
||||
switch (val / 0x10) {
|
||||
case 0xF: ret[len++] = 'F'; break;
|
||||
case 0xE: ret[len++] = 'E'; break;
|
||||
case 0xD: ret[len++] = 'D'; break;
|
||||
case 0xC: ret[len++] = 'C'; break;
|
||||
case 0xB: ret[len++] = 'B'; break;
|
||||
case 0xA: ret[len++] = 'A'; break;
|
||||
default: ret[len++] = '0' + (val / 0x10);
|
||||
}
|
||||
switch (val % 0x10) {
|
||||
case 0xF: ret[len++] = 'F'; break;
|
||||
case 0xE: ret[len++] = 'E'; break;
|
||||
case 0xD: ret[len++] = 'D'; break;
|
||||
case 0xC: ret[len++] = 'C'; break;
|
||||
case 0xB: ret[len++] = 'B'; break;
|
||||
case 0xA: ret[len++] = 'A'; break;
|
||||
default: ret[len++] = '0' + (val % 0x10);
|
||||
}
|
||||
ret[len++] = hi + (hi > 9? 'A'-10 : '0');
|
||||
ret[len++] = lo + (lo > 9? 'A'-10 : '0');
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -528,26 +453,11 @@ xmlSaveUri(xmlURIPtr uri) {
|
||||
if ((IS_UNRESERVED(*(p))) || (IS_RESERVED(*(p))))
|
||||
ret[len++] = *p++;
|
||||
else {
|
||||
int val = *p++;
|
||||
int val = *(unsigned char *)p++;
|
||||
int hi = val / 0x10, lo = val % 0x10;
|
||||
ret[len++] = '%';
|
||||
switch (val / 0x10) {
|
||||
case 0xF: ret[len++] = 'F'; break;
|
||||
case 0xE: ret[len++] = 'E'; break;
|
||||
case 0xD: ret[len++] = 'D'; break;
|
||||
case 0xC: ret[len++] = 'C'; break;
|
||||
case 0xB: ret[len++] = 'B'; break;
|
||||
case 0xA: ret[len++] = 'A'; break;
|
||||
default: ret[len++] = '0' + (val / 0x10);
|
||||
}
|
||||
switch (val % 0x10) {
|
||||
case 0xF: ret[len++] = 'F'; break;
|
||||
case 0xE: ret[len++] = 'E'; break;
|
||||
case 0xD: ret[len++] = 'D'; break;
|
||||
case 0xC: ret[len++] = 'C'; break;
|
||||
case 0xB: ret[len++] = 'B'; break;
|
||||
case 0xA: ret[len++] = 'A'; break;
|
||||
default: ret[len++] = '0' + (val % 0x10);
|
||||
}
|
||||
ret[len++] = hi + (hi > 9? 'A'-10 : '0');
|
||||
ret[len++] = lo + (lo > 9? 'A'-10 : '0');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user