xml.c: remove buffering of comment data, which is unused anyway
This commit is contained in:
parent
88208d5ffd
commit
95f025d9bc
34
xml.c
34
xml.c
|
@ -116,49 +116,19 @@ startvalue:
|
|||
static void
|
||||
xml_parsecomment(XMLParser *x)
|
||||
{
|
||||
size_t datalen = 0, i = 0;
|
||||
size_t i = 0;
|
||||
int c;
|
||||
|
||||
if (x->xmlcommentstart)
|
||||
x->xmlcommentstart(x);
|
||||
while ((c = GETNEXT()) != EOF) {
|
||||
if (c == '-' || c == '>') {
|
||||
if (x->xmlcomment && datalen) {
|
||||
x->data[datalen] = '\0';
|
||||
x->xmlcomment(x, x->data, datalen);
|
||||
datalen = 0;
|
||||
}
|
||||
}
|
||||
|
||||
if (c == '-') {
|
||||
if (++i > 2) {
|
||||
if (x->xmlcomment)
|
||||
for (; i > 2; i--)
|
||||
x->xmlcomment(x, "-", 1);
|
||||
if (++i > 2)
|
||||
i = 2;
|
||||
}
|
||||
continue;
|
||||
} else if (c == '>' && i == 2) {
|
||||
if (x->xmlcommentend)
|
||||
x->xmlcommentend(x);
|
||||
return;
|
||||
} else if (i) {
|
||||
if (x->xmlcomment) {
|
||||
for (; i > 0; i--)
|
||||
x->xmlcomment(x, "-", 1);
|
||||
}
|
||||
i = 0;
|
||||
}
|
||||
|
||||
if (datalen < sizeof(x->data) - 1) {
|
||||
x->data[datalen++] = c;
|
||||
} else {
|
||||
x->data[datalen] = '\0';
|
||||
if (x->xmlcomment)
|
||||
x->xmlcomment(x, x->data, datalen);
|
||||
x->data[0] = c;
|
||||
datalen = 1;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
3
xml.h
3
xml.h
|
@ -16,9 +16,6 @@ typedef struct xmlparser {
|
|||
void (*xmlcdatastart)(struct xmlparser *);
|
||||
void (*xmlcdata)(struct xmlparser *, const char *, size_t);
|
||||
void (*xmlcdataend)(struct xmlparser *);
|
||||
void (*xmlcommentstart)(struct xmlparser *);
|
||||
void (*xmlcomment)(struct xmlparser *, const char *, size_t);
|
||||
void (*xmlcommentend)(struct xmlparser *);
|
||||
void (*xmldata)(struct xmlparser *, const char *, size_t);
|
||||
void (*xmldataend)(struct xmlparser *);
|
||||
void (*xmldataentity)(struct xmlparser *, const char *, size_t);
|
||||
|
|
Loading…
Reference in New Issue