mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2024-12-25 23:21:26 +03:00
Fixed some wrongly space collapsing code due to misreading of the spec, Daniel.
This commit is contained in:
parent
7f8585025f
commit
07136650c1
@ -1,4 +1,10 @@
|
|||||||
Wed Nov 17 18:28:06 CET 1999
|
Thu Nov 18 14:57:18 CET 1999
|
||||||
|
|
||||||
|
* parser.c: Fixed some wrongly space collapsing code due to
|
||||||
|
a misreading of the spec.
|
||||||
|
* result/*: fixed the output accordingly
|
||||||
|
|
||||||
|
Wed Nov 17 18:28:06 CET 1999 Daniel Veillard <Daniel.Veillard@w3.org>
|
||||||
|
|
||||||
* encoding.c: bug fix and typos
|
* encoding.c: bug fix and typos
|
||||||
* xmlIO.[ch] parser.c: first bits toward real progressive parsing
|
* xmlIO.[ch] parser.c: first bits toward real progressive parsing
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
SAX.setDocumentLocator()
|
SAX.setDocumentLocator()
|
||||||
SAX.startDocument()
|
SAX.startDocument()
|
||||||
SAX.startElement(doc, attr='to normalize with a space')
|
SAX.startElement(doc, attr='to normalize with a space')
|
||||||
SAX.endElement(doc)
|
SAX.endElement(doc)
|
||||||
SAX.endDocument()
|
SAX.endDocument()
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
SAX.setDocumentLocator()
|
SAX.setDocumentLocator()
|
||||||
SAX.startDocument()
|
SAX.startDocument()
|
||||||
SAX.startElement(doc, attr='to normalize with a space')
|
SAX.startElement(doc, attr='to normalize with a space')
|
||||||
SAX.endElement(doc)
|
SAX.endElement(doc)
|
||||||
SAX.endDocument()
|
SAX.endDocument()
|
||||||
|
23
parser.c
23
parser.c
@ -2509,6 +2509,12 @@ xmlParseEntityValue(xmlParserCtxtPtr ctxt, xmlChar **orig) {
|
|||||||
* #x20 is appended for a "#xD#xA" sequence that is part of an external
|
* #x20 is appended for a "#xD#xA" sequence that is part of an external
|
||||||
* parsed entity or the literal entity value of an internal parsed entity
|
* parsed entity or the literal entity value of an internal parsed entity
|
||||||
* - other characters are processed by appending them to the normalized value
|
* - other characters are processed by appending them to the normalized value
|
||||||
|
* If the declared value is not CDATA, then the XML processor must further
|
||||||
|
* process the normalized attribute value by discarding any leading and
|
||||||
|
* trailing space (#x20) characters, and by replacing sequences of space
|
||||||
|
* (#x20) characters by a single space (#x20) character.
|
||||||
|
* All attributes for which no declaration has been read should be treated
|
||||||
|
* by a non-validating parser as if declared CDATA.
|
||||||
*
|
*
|
||||||
* Returns the AttValue parsed or NULL. The value has to be freed by the caller.
|
* Returns the AttValue parsed or NULL. The value has to be freed by the caller.
|
||||||
*/
|
*/
|
||||||
@ -2523,7 +2529,6 @@ xmlParseAttValue(xmlParserCtxtPtr ctxt) {
|
|||||||
xmlChar *current = NULL;
|
xmlChar *current = NULL;
|
||||||
xmlEntityPtr ent;
|
xmlEntityPtr ent;
|
||||||
xmlChar cur;
|
xmlChar cur;
|
||||||
int blank = 0;
|
|
||||||
|
|
||||||
|
|
||||||
SHRINK;
|
SHRINK;
|
||||||
@ -2564,7 +2569,6 @@ xmlParseAttValue(xmlParserCtxtPtr ctxt) {
|
|||||||
if ((cur == '&') && (NXT(1) == '#')) {
|
if ((cur == '&') && (NXT(1) == '#')) {
|
||||||
int val = xmlParseCharRef(ctxt);
|
int val = xmlParseCharRef(ctxt);
|
||||||
*out++ = val;
|
*out++ = val;
|
||||||
blank = 0;
|
|
||||||
} else if (cur == '&') {
|
} else if (cur == '&') {
|
||||||
ent = xmlParseEntityRef(ctxt);
|
ent = xmlParseEntityRef(ctxt);
|
||||||
if ((ent != NULL) &&
|
if ((ent != NULL) &&
|
||||||
@ -2594,20 +2598,16 @@ xmlParseAttValue(xmlParserCtxtPtr ctxt) {
|
|||||||
*out++ = *cur++;
|
*out++ = *cur++;
|
||||||
*out++ = ';';
|
*out++ = ';';
|
||||||
}
|
}
|
||||||
blank = 0;
|
|
||||||
} else {
|
} else {
|
||||||
/* invalid for UTF-8 , use COPY(out); !!!!!! */
|
/* invalid for UTF-8 , use COPY(out); !!!!!! */
|
||||||
if ((cur == 0x20) || (cur == 0xD) || (cur == 0xA) || (cur == 0x9)) {
|
if ((cur == 0x20) || (cur == 0xD) || (cur == 0xA) || (cur == 0x9)) {
|
||||||
if (!blank) {
|
*out++ = 0x20;
|
||||||
*out++ = 0x20;
|
if (out - buffer > buffer_size - 10) {
|
||||||
if (out - buffer > buffer_size - 10) {
|
int index = out - buffer;
|
||||||
int index = out - buffer;
|
|
||||||
|
|
||||||
growBuffer(buffer);
|
growBuffer(buffer);
|
||||||
out = &buffer[index];
|
out = &buffer[index];
|
||||||
}
|
|
||||||
}
|
}
|
||||||
blank = 1;
|
|
||||||
} else {
|
} else {
|
||||||
*out++ = cur;
|
*out++ = cur;
|
||||||
if (out - buffer > buffer_size - 10) {
|
if (out - buffer > buffer_size - 10) {
|
||||||
@ -2616,7 +2616,6 @@ xmlParseAttValue(xmlParserCtxtPtr ctxt) {
|
|||||||
growBuffer(buffer);
|
growBuffer(buffer);
|
||||||
out = &buffer[index];
|
out = &buffer[index];
|
||||||
}
|
}
|
||||||
blank = 0;
|
|
||||||
}
|
}
|
||||||
NEXT;
|
NEXT;
|
||||||
}
|
}
|
||||||
|
@ -2,9 +2,9 @@
|
|||||||
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG April 1999//EN" "http://www.w3.org/Graphics/SVG/svg-19990412.dtd">
|
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG April 1999//EN" "http://www.w3.org/Graphics/SVG/svg-19990412.dtd">
|
||||||
<svg width="800px" height="800px">
|
<svg width="800px" height="800px">
|
||||||
<desc>This sample SVG file draws a flower</desc>
|
<desc>This sample SVG file draws a flower</desc>
|
||||||
<g style="transform: matrix(1 0 0 -1 -25.88 798.60); stroke: #000; stroke-width: 1">
|
<g style="transform: matrix(1 0 0 -1 -25.88 798.60); stroke: #000; stroke-width: 1">
|
||||||
<path style="fill: #1A5466" d="m 242.33 684.19 C 346.44 757.48 271.45 647.38 213.17 641.37 C 271.45 647.38 383.43 575.21 256.71 613.30 C 383.43 575.21 251.04 565.90 205.23 609.68 C 251.04 565.90 265.13 432.88 210.71 557.95 C 265.13 432.88 175.04 531.37 175.67 596.26 C 175.04 531.37 80.63 437.67 138.96 559.82 C 80.63 437.67 100.67 569.80 146.75 611.20 C 100.67 569.80 -31.14 585.98 95.49 617.49 C -31.14 585.98 83.94 652.25 140.24 643.26 C 83.94 652.25 13.98 766.12 113.04 687.55 C 13.98 766.12 137.45 716.63 161.05 668.30 C 137.45 716.63 182.02 842.45 178.39 717.23 C 182.02 842.45 220.90 714.46 193.51 667.46 C 220.90 714.46 346.44 757.48 242.33 684.19 z"/>
|
<path style="fill: #1A5466" d="m 242.33 684.19 C 346.44 757.48 271.45 647.38 213.17 641.37 C 271.45 647.38 383.43 575.21 256.71 613.30 C 383.43 575.21 251.04 565.90 205.23 609.68 C 251.04 565.90 265.13 432.88 210.71 557.95 C 265.13 432.88 175.04 531.37 175.67 596.26 C 175.04 531.37 80.63 437.67 138.96 559.82 C 80.63 437.67 100.67 569.80 146.75 611.20 C 100.67 569.80 -31.14 585.98 95.49 617.49 C -31.14 585.98 83.94 652.25 140.24 643.26 C 83.94 652.25 13.98 766.12 113.04 687.55 C 13.98 766.12 137.45 716.63 161.05 668.30 C 137.45 716.63 182.02 842.45 178.39 717.23 C 182.02 842.45 220.90 714.46 193.51 667.46 C 220.90 714.46 346.44 757.48 242.33 684.19 z"/>
|
||||||
<path style="fill: #34AACD" d="M 235.33 691.19 C 339.44 764.48 264.45 654.38 206.17 648.37 C 264.45 654.38 376.43 582.21 249.71 620.30 C 376.43 582.21 244.04 572.90 198.23 616.68 C 244.04 572.90 258.13 439.88 203.71 564.95 C 258.13 439.88 168.04 538.37 168.67 603.26 C 168.04 538.37 73.63 444.67 131.96 566.82 C 73.63 444.67 93.67 576.80 139.75 618.20 C 93.67 576.80 -38.14 592.98 88.49 624.49 C -38.14 592.98 76.94 659.25 133.24 650.26 C 76.94 659.25 6.98 773.12 106.04 694.55 C 6.98 773.12 130.45 723.63 154.05 675.30 C 130.45 723.63 175.02 849.45 171.39 724.23 C 175.02 849.45 213.90 721.46 186.51 674.46 C 213.90 721.46 339.44 764.48 235.33 691.19 z"/>
|
<path style="fill: #34AACD" d="M 235.33 691.19 C 339.44 764.48 264.45 654.38 206.17 648.37 C 264.45 654.38 376.43 582.21 249.71 620.30 C 376.43 582.21 244.04 572.90 198.23 616.68 C 244.04 572.90 258.13 439.88 203.71 564.95 C 258.13 439.88 168.04 538.37 168.67 603.26 C 168.04 538.37 73.63 444.67 131.96 566.82 C 73.63 444.67 93.67 576.80 139.75 618.20 C 93.67 576.80 -38.14 592.98 88.49 624.49 C -38.14 592.98 76.94 659.25 133.24 650.26 C 76.94 659.25 6.98 773.12 106.04 694.55 C 6.98 773.12 130.45 723.63 154.05 675.30 C 130.45 723.63 175.02 849.45 171.39 724.23 C 175.02 849.45 213.90 721.46 186.51 674.46 C 213.90 721.46 339.44 764.48 235.33 691.19 z"/>
|
||||||
<path style="fill: #F881BF" d="M 199.44 634.43 C 199.44 622.16 189.19 612.21 176.54 612.21 C 163.89 612.21 153.63 622.16 153.63 634.43 C 153.63 646.71 163.89 656.66 176.54 656.66 C 189.19 656.66 199.44 646.71 199.44 634.43 z"/>
|
<path style="fill: #F881BF" d="M 199.44 634.43 C 199.44 622.16 189.19 612.21 176.54 612.21 C 163.89 612.21 153.63 622.16 153.63 634.43 C 153.63 646.71 163.89 656.66 176.54 656.66 C 189.19 656.66 199.44 646.71 199.44 634.43 z"/>
|
||||||
</g>
|
</g>
|
||||||
</svg>
|
</svg>
|
||||||
|
Before Width: | Height: | Size: 1.8 KiB After Width: | Height: | Size: 2.2 KiB |
@ -3,7 +3,7 @@
|
|||||||
<svg width="4in" height="3in">
|
<svg width="4in" height="3in">
|
||||||
<defs>
|
<defs>
|
||||||
<symbol id="Triangle1" min-x="0" min-y="0" max-x="300" max-y="200">
|
<symbol id="Triangle1" min-x="0" min-y="0" max-x="300" max-y="200">
|
||||||
<path d="M 50 0 L 50 200 L 250 0 z"/>
|
<path d="M 50 0 L 50 200 L 250 0 z"/>
|
||||||
</symbol>
|
</symbol>
|
||||||
<symbol id="Triangle2" min-x="0" min-y="0" max-x="300" max-y="200">
|
<symbol id="Triangle2" min-x="0" min-y="0" max-x="300" max-y="200">
|
||||||
<path d="M 50 0 L 250 200 L 250 0 z"/>
|
<path d="M 50 0 L 250 200 L 250 0 z"/>
|
||||||
|
Before Width: | Height: | Size: 847 B After Width: | Height: | Size: 848 B |
@ -1,2 +1,2 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<doc attr="to normalize with a space"/>
|
<doc attr="to normalize with a space"/>
|
||||||
|
@ -1,2 +1,2 @@
|
|||||||
<?xml version="1.0"?>
|
<?xml version="1.0"?>
|
||||||
<doc attr="to normalize with a space"/>
|
<doc attr="to normalize with a space"/>
|
||||||
|
Loading…
Reference in New Issue
Block a user