| ︙ | | | ︙ | |
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
|
i: (size_t*)i
last: (size_t*)last
{
size_t length;
if ((finishedParsing || [previous count] < 1) && buffer[*i] != ' ' &&
buffer[*i] != '\t' && buffer[*i] != '\n' && buffer[*i] != '\r' &&
buffer[*i] != '<')
@throw [OFMalformedXMLException newWithClass: isa
parser: self];
if (buffer[*i] != '<')
return;
if ((length = *i - *last) > 0)
|
|
|
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
|
i: (size_t*)i
last: (size_t*)last
{
size_t length;
if ((finishedParsing || [previous count] < 1) && buffer[*i] != ' ' &&
buffer[*i] != '\t' && buffer[*i] != '\n' && buffer[*i] != '\r' &&
buffer[*i] != '\f' && buffer[*i] != '<')
@throw [OFMalformedXMLException newWithClass: isa
parser: self];
if (buffer[*i] != '<')
return;
if ((length = *i - *last) > 0)
|
| ︙ | | | ︙ | |
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
|
cString = [pi cString];
length = [pi cStringLength];
for (i = last = 0; i < length; i++) {
switch (piState) {
case 0:
if (cString[i] == ' ' || cString[i] == '\t' ||
cString[i] == '\r' || cString[i] == '\n')
continue;
last = i;
piState = 1;
i--;
break;
|
|
>
|
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
|
cString = [pi cString];
length = [pi cStringLength];
for (i = last = 0; i < length; i++) {
switch (piState) {
case 0:
if (cString[i] == ' ' || cString[i] == '\t' ||
cString[i] == '\r' || cString[i] == '\n' ||
cString[i] == '\f')
continue;
last = i;
piState = 1;
i--;
break;
|
| ︙ | | | ︙ | |
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
|
{
OFAutoreleasePool *pool;
const char *cacheCString, *tmp;
size_t length, cacheLength;
OFString *cacheString;
if (buffer[*i] != ' ' && buffer[*i] != '\t' && buffer[*i] != '\n' &&
buffer[*i] != '\r' && buffer[*i] != '>' && buffer[*i] != '/')
return;
if ((length = *i - *last) > 0)
cache_append(cache, buffer + *last, encoding, length);
pool = [[OFAutoreleasePool alloc] init];
|
|
>
|
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
|
{
OFAutoreleasePool *pool;
const char *cacheCString, *tmp;
size_t length, cacheLength;
OFString *cacheString;
if (buffer[*i] != ' ' && buffer[*i] != '\t' && buffer[*i] != '\n' &&
buffer[*i] != '\r' && buffer[*i] != '\f' && buffer[*i] != '>' &&
buffer[*i] != '/')
return;
if ((length = *i - *last) > 0)
cache_append(cache, buffer + *last, encoding, length);
pool = [[OFAutoreleasePool alloc] init];
|
| ︙ | | | ︙ | |
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
|
OFAutoreleasePool *pool;
const char *cacheCString, *tmp;
size_t length, cacheLength;
OFString *cacheString;
OFString *ns;
if (buffer[*i] != ' ' && buffer[*i] != '\t' && buffer[*i] != '\n' &&
buffer[*i] != '\r' && buffer[*i] != '>')
return;
if ((length = *i - *last) > 0)
cache_append(cache, buffer + *last, encoding, length);
pool = [[OFAutoreleasePool alloc] init];
|
|
|
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
|
OFAutoreleasePool *pool;
const char *cacheCString, *tmp;
size_t length, cacheLength;
OFString *cacheString;
OFString *ns;
if (buffer[*i] != ' ' && buffer[*i] != '\t' && buffer[*i] != '\n' &&
buffer[*i] != '\r' && buffer[*i] != '\f' && buffer[*i] != '>')
return;
if ((length = *i - *last) > 0)
cache_append(cache, buffer + *last, encoding, length);
pool = [[OFAutoreleasePool alloc] init];
|
| ︙ | | | ︙ | |
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
|
OFAutoreleasePool *pool;
OFString *ns;
OFXMLAttribute **attributesCArray;
size_t j, attributesCount;
if (buffer[*i] != '>' && buffer[*i] != '/') {
if (buffer[*i] != ' ' && buffer[*i] != '\t' &&
buffer[*i] != '\n' && buffer[*i] != '\r') {
*last = *i;
state = OF_XMLPARSER_IN_ATTR_NAME;
(*i)--;
}
return;
}
|
|
>
|
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
|
OFAutoreleasePool *pool;
OFString *ns;
OFXMLAttribute **attributesCArray;
size_t j, attributesCount;
if (buffer[*i] != '>' && buffer[*i] != '/') {
if (buffer[*i] != ' ' && buffer[*i] != '\t' &&
buffer[*i] != '\n' && buffer[*i] != '\r' &&
buffer[*i] != '\f') {
*last = *i;
state = OF_XMLPARSER_IN_ATTR_NAME;
(*i)--;
}
return;
}
|
| ︙ | | | ︙ | |
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
|
- (void)_parseExpectDelimiterWithBuffer: (const char*)buffer
i: (size_t*)i
last: (size_t*)last
{
*last = *i + 1;
if (buffer[*i] == ' ' || buffer[*i] == '\t' || buffer[*i] == '\n' ||
buffer[*i] == '\r')
return;
if (buffer[*i] != '\'' && buffer[*i] != '"')
@throw [OFMalformedXMLException newWithClass: isa
parser: self];
delimiter = buffer[*i];
|
|
|
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
|
- (void)_parseExpectDelimiterWithBuffer: (const char*)buffer
i: (size_t*)i
last: (size_t*)last
{
*last = *i + 1;
if (buffer[*i] == ' ' || buffer[*i] == '\t' || buffer[*i] == '\n' ||
buffer[*i] == '\r' || buffer[*i] == '\f')
return;
if (buffer[*i] != '\'' && buffer[*i] != '"')
@throw [OFMalformedXMLException newWithClass: isa
parser: self];
delimiter = buffer[*i];
|
| ︙ | | | ︙ | |
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
|
i: (size_t*)i
last: (size_t*)last
{
if (buffer[*i] == '>') {
*last = *i + 1;
state = OF_XMLPARSER_OUTSIDE_TAG;
} else if (buffer[*i] != ' ' && buffer[*i] != '\t' &&
buffer[*i] != '\n' && buffer[*i] != '\r')
@throw [OFMalformedXMLException newWithClass: isa
parser: self];
}
/* In <! */
- (void)_parseInExclamationMarkWithBuffer: (const char*)buffer
i: (size_t*)i
|
|
|
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
|
i: (size_t*)i
last: (size_t*)last
{
if (buffer[*i] == '>') {
*last = *i + 1;
state = OF_XMLPARSER_OUTSIDE_TAG;
} else if (buffer[*i] != ' ' && buffer[*i] != '\t' &&
buffer[*i] != '\n' && buffer[*i] != '\r' && buffer[*i] != '\f')
@throw [OFMalformedXMLException newWithClass: isa
parser: self];
}
/* In <! */
- (void)_parseInExclamationMarkWithBuffer: (const char*)buffer
i: (size_t*)i
|
| ︙ | | | ︙ | |
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
|
/* In <!DOCTYPE ...> */
- (void)_parseInDoctypeWithBuffer: (const char*)buffer
i: (size_t*)i
last: (size_t*)last
{
if ((level < 6 && buffer[*i] != "OCTYPE"[level]) ||
(level == 6 && buffer[*i] != ' ' && buffer[*i] != '\t' &&
buffer[*i] != '\n' && buffer[*i] != '\r'))
@throw [OFMalformedXMLException newWithClass: isa
parser: self];
if (level < 7 || buffer[*i] == '<')
level++;
if (buffer[*i] == '>') {
|
|
|
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
|
/* In <!DOCTYPE ...> */
- (void)_parseInDoctypeWithBuffer: (const char*)buffer
i: (size_t*)i
last: (size_t*)last
{
if ((level < 6 && buffer[*i] != "OCTYPE"[level]) ||
(level == 6 && buffer[*i] != ' ' && buffer[*i] != '\t' &&
buffer[*i] != '\n' && buffer[*i] != '\r' && buffer[*i] != '\f'))
@throw [OFMalformedXMLException newWithClass: isa
parser: self];
if (level < 7 || buffer[*i] == '<')
level++;
if (buffer[*i] == '>') {
|
| ︙ | | | ︙ | |