mirror of
https://github.com/darlinghq/darling-libxml2.git
synced 2025-02-15 15:59:41 +00:00
fixed bug #59981 related to handling of '&' in attributes when entities
* parser.c result/noent/wml.xml: fixed bug #59981 related to handling of '&' in attributes when entities are substitued Daniel
This commit is contained in:
parent
7cf5e44827
commit
319a742a50
@ -1,3 +1,8 @@
|
||||
Tue Sep 11 11:25:36 CEST 2001 Daniel Veillard <daniel@veillard.com>
|
||||
|
||||
* parser.c result/noent/wml.xml: fixed bug #59981 related
|
||||
to handling of '&' in attributes when entities are substitued
|
||||
|
||||
Mon Sep 10 22:14:42 CEST 2001 Daniel Veillard <daniel@veillard.com>
|
||||
|
||||
* libxml.h include/libxml/xmlversion.h.in
|
||||
|
60
parser.c
60
parser.c
@ -2212,36 +2212,50 @@ xmlParseAttValue(xmlParserCtxtPtr ctxt) {
|
||||
(c != '<')) || (ctxt->token != 0)) {
|
||||
if (c == 0) break;
|
||||
if (ctxt->token == '&') {
|
||||
/*
|
||||
* The reparsing will be done in xmlStringGetNodeList()
|
||||
* called by the attribute() function in SAX.c
|
||||
*/
|
||||
static xmlChar buffer[6] = "&";
|
||||
if (ctxt->replaceEntities) {
|
||||
if (len > buf_size - 10) {
|
||||
growBuffer(buf);
|
||||
}
|
||||
buf[len++] = '&';
|
||||
} else {
|
||||
/*
|
||||
* The reparsing will be done in xmlStringGetNodeList()
|
||||
* called by the attribute() function in SAX.c
|
||||
*/
|
||||
static xmlChar buffer[6] = "&";
|
||||
|
||||
if (len > buf_size - 10) {
|
||||
growBuffer(buf);
|
||||
if (len > buf_size - 10) {
|
||||
growBuffer(buf);
|
||||
}
|
||||
current = &buffer[0];
|
||||
while (*current != 0) { /* non input consuming */
|
||||
buf[len++] = *current++;
|
||||
}
|
||||
ctxt->token = 0;
|
||||
}
|
||||
current = &buffer[0];
|
||||
while (*current != 0) { /* non input consuming */
|
||||
buf[len++] = *current++;
|
||||
}
|
||||
ctxt->token = 0;
|
||||
} else if (c == '&') {
|
||||
if (NXT(1) == '#') {
|
||||
int val = xmlParseCharRef(ctxt);
|
||||
if (val == '&') {
|
||||
/*
|
||||
* The reparsing will be done in xmlStringGetNodeList()
|
||||
* called by the attribute() function in SAX.c
|
||||
*/
|
||||
static xmlChar buffer[6] = "&";
|
||||
if (ctxt->replaceEntities) {
|
||||
if (len > buf_size - 10) {
|
||||
growBuffer(buf);
|
||||
}
|
||||
buf[len++] = '&';
|
||||
} else {
|
||||
/*
|
||||
* The reparsing will be done in xmlStringGetNodeList()
|
||||
* called by the attribute() function in SAX.c
|
||||
*/
|
||||
static xmlChar buffer[6] = "&";
|
||||
|
||||
if (len > buf_size - 10) {
|
||||
growBuffer(buf);
|
||||
}
|
||||
current = &buffer[0];
|
||||
while (*current != 0) { /* non input consuming */
|
||||
buf[len++] = *current++;
|
||||
if (len > buf_size - 10) {
|
||||
growBuffer(buf);
|
||||
}
|
||||
current = &buffer[0];
|
||||
while (*current != 0) { /* non input consuming */
|
||||
buf[len++] = *current++;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (len > buf_size - 10) {
|
||||
|
@ -3,7 +3,7 @@
|
||||
<wml>
|
||||
<card id="card1" title="Rubriques 75008">
|
||||
<p>
|
||||
<a href="rubmenu.asp?CP=75008&#38;RB=01">Cinéma</a><br/>
|
||||
<a href="rubmenu.asp?CP=75008&RB=01">Cinéma</a><br/>
|
||||
</p>
|
||||
|
||||
</card>
|
||||
|
Loading…
x
Reference in New Issue
Block a user