mirror of
https://gitlab.gnome.org/GNOME/libxml2.git
synced 2025-07-29 11:41:22 +03:00
add the testchar to 'make check' Volker Grabsch pointed out a typo
* Makefile.am: add the testchar to 'make check' * xmlschemas.c: Volker Grabsch pointed out a typo * xmlregexp.c: production [19] from XML Schemas regexps were a mistake removed in version REC-xmlschema-2-20041028, Volker Grabsch provided a patch to remove it * test/schemas/regexp-char-ref_0.xml test/schemas/regexp-char-ref_0.xsd test/schemas/regexp-char-ref_1.xsd result/schemas/regexp-char-ref_0_0 result/schemas/regexp-char-ref_1_0: Volker Grabsch also provided regession tests for this Daniel svn path=/trunk/; revision=3776
This commit is contained in:
64
xmlregexp.c
64
xmlregexp.c
@ -4906,64 +4906,6 @@ xmlFAParseCharClassEsc(xmlRegParserCtxtPtr ctxt) {
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* xmlFAParseCharRef:
|
||||
* @ctxt: a regexp parser context
|
||||
*
|
||||
* [19] XmlCharRef ::= ( '&#' [0-9]+ ';' ) | (' &#x' [0-9a-fA-F]+ ';' )
|
||||
*/
|
||||
static int
|
||||
xmlFAParseCharRef(xmlRegParserCtxtPtr ctxt) {
|
||||
int ret = 0, cur;
|
||||
|
||||
if ((CUR != '&') || (NXT(1) != '#'))
|
||||
return(-1);
|
||||
NEXT;
|
||||
NEXT;
|
||||
cur = CUR;
|
||||
if (cur == 'x') {
|
||||
NEXT;
|
||||
cur = CUR;
|
||||
if (((cur >= '0') && (cur <= '9')) ||
|
||||
((cur >= 'a') && (cur <= 'f')) ||
|
||||
((cur >= 'A') && (cur <= 'F'))) {
|
||||
while (((cur >= '0') && (cur <= '9')) ||
|
||||
((cur >= 'a') && (cur <= 'f')) ||
|
||||
((cur >= 'A') && (cur <= 'F'))) {
|
||||
if ((cur >= '0') && (cur <= '9'))
|
||||
ret = ret * 16 + cur - '0';
|
||||
else if ((cur >= 'a') && (cur <= 'f'))
|
||||
ret = ret * 16 + 10 + (cur - 'a');
|
||||
else
|
||||
ret = ret * 16 + 10 + (cur - 'A');
|
||||
NEXT;
|
||||
cur = CUR;
|
||||
}
|
||||
} else {
|
||||
ERROR("Char ref: expecting [0-9A-F]");
|
||||
return(-1);
|
||||
}
|
||||
} else {
|
||||
if ((cur >= '0') && (cur <= '9')) {
|
||||
while ((cur >= '0') && (cur <= '9')) {
|
||||
ret = ret * 10 + cur - '0';
|
||||
NEXT;
|
||||
cur = CUR;
|
||||
}
|
||||
} else {
|
||||
ERROR("Char ref: expecting [0-9]");
|
||||
return(-1);
|
||||
}
|
||||
}
|
||||
if (cur != ';') {
|
||||
ERROR("Char ref: expecting ';'");
|
||||
return(-1);
|
||||
} else {
|
||||
NEXT;
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
/**
|
||||
* xmlFAParseCharRange:
|
||||
* @ctxt: a regexp parser context
|
||||
@ -4985,12 +4927,6 @@ xmlFAParseCharRange(xmlRegParserCtxtPtr ctxt) {
|
||||
return;
|
||||
}
|
||||
|
||||
if ((CUR == '&') && (NXT(1) == '#')) {
|
||||
end = start = xmlFAParseCharRef(ctxt);
|
||||
xmlRegAtomAddRange(ctxt, ctxt->atom, ctxt->neg,
|
||||
XML_REGEXP_CHARVAL, start, end, NULL);
|
||||
return;
|
||||
}
|
||||
cur = CUR;
|
||||
if (cur == '\\') {
|
||||
NEXT;
|
||||
|
Reference in New Issue
Block a user