1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-01-13 13:17:36 +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

@ -1,3 +1,15 @@
Tue Aug 26 09:42:08 CEST 2008 Daniel Veillard <daniel@veillard.com>
* 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
Tue Aug 26 09:25:39 CEST 2008 Daniel Veillard <daniel@veillard.com>
* include/libxml/parser.h xinclude.c xmllint.c: patch based on

View File

@ -172,7 +172,7 @@ runxmlconf_LDADD= $(LDADDS)
#testOOM_LDADD= $(LDADDS)
runtests:
$(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
$(CHECKER) ./runtest$(EXEEXT) && $(CHECKER) ./testapi$(EXEEXT) && $(CHECKER) ./testchar$(EXEEXT)&& $(CHECKER) ./testdict$(EXEEXT) && $(CHECKER) ./runxmlconf$(EXEEXT)
check: all runtests

View File

@ -0,0 +1 @@
./test/schemas/regexp-char-ref_0.xml validates

View File

@ -0,0 +1 @@
./test/schemas/regexp-char-ref_0.xml validates

View File

@ -0,0 +1,7 @@
<?xml version="1.0"?>
<test test1="5"
test2="6"
test3="#"
test4=";"
test5="&amp;" />

View File

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="test">
<xs:complexType>
<xs:attribute name="test1" type="myType"/>
<xs:attribute name="test2" type="myType"/>
<xs:attribute name="test3" type="myType"/>
<xs:attribute name="test4" type="myType"/>
<xs:attribute name="test5" type="myType"/>
</xs:complexType>
</xs:element>
<xs:simpleType name="myType">
<xs:restriction base="xs:string">
<xs:pattern value="[56;&amp;#]"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

View File

@ -0,0 +1,20 @@
<?xml version="1.0"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="test">
<xs:complexType>
<xs:attribute name="test1" type="myType"/>
<xs:attribute name="test2" type="myType"/>
<xs:attribute name="test3" type="myType"/>
<xs:attribute name="test4" type="myType"/>
<xs:attribute name="test5" type="myType"/>
</xs:complexType>
</xs:element>
<xs:simpleType name="myType">
<xs:restriction base="xs:string">
<xs:pattern value="[&amp;#65;]"/>
</xs:restriction>
</xs:simpleType>
</xs:schema>

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;

View File

@ -15092,7 +15092,7 @@ xmlSchemaCheckSTPropsCorrect(xmlSchemaParserCtxtPtr ctxt,
xmlSchemaPCustomErr(ctxt,
XML_SCHEMAP_ST_PROPS_CORRECT_1,
WXS_BASIC_CAST type, NULL,
"A type, derived by list or union, must have"
"A type, derived by list or union, must have "
"the simple ur-type definition as base type, not '%s'",
xmlSchemaGetComponentQName(&str, baseType));
FREE_AND_NULL(str)