1
0
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:
Daniel Veillard
2008-08-26 07:46:42 +00:00
parent 54bd29b79b
commit bf9c1dad3a
9 changed files with 63 additions and 66 deletions

View File

@ -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;