1
0
mirror of https://gitlab.gnome.org/GNOME/libxml2.git synced 2025-08-07 06:43:02 +03:00

The lesson of the day is

"never forget an epsilon transition or DocBook will raise it"
- valid.c: forgot an epsilon transition in for ()+
- test/VCM/v21.xml : added a specific test case
Daniel
This commit is contained in:
Daniel Veillard
2001-04-20 15:47:35 +00:00
parent 8534905f62
commit ca1f1724ed
3 changed files with 14 additions and 1 deletions

View File

@@ -1,3 +1,8 @@
Fri Apr 20 17:45:47 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
* valid.c: forgot an epsilon transition in for ()+
* test/VCM/v21.xml : added a specific test case
Fri Apr 20 15:46:04 CEST 2001 Daniel Veillard <Daniel.Veillard@imag.fr>
* valid.c: removed a state explosion exhibited by RSS

7
test/VCM/v21.xml Normal file
View File

@@ -0,0 +1,7 @@
<!DOCTYPE doc [
<!ELEMENT doc ((a | b)+, c) >
<!ELEMENT a EMPTY>
<!ELEMENT b EMPTY>
<!ELEMENT c EMPTY>
]>
<doc><a/><b/><c/></doc>

View File

@@ -3590,7 +3590,8 @@ cont:
if ((consumed) && (CONT != NULL) &&
(CONT->parent != NULL) &&
((CONT->ocur == XML_ELEMENT_CONTENT_MULT) ||
(CONT->ocur == XML_ELEMENT_CONTENT_OPT))) {
(CONT->ocur == XML_ELEMENT_CONTENT_OPT) ||
((CONT->ocur == XML_ELEMENT_CONTENT_PLUS) && (OCCURENCE)))) {
DEBUG_VALID_MSG("saving parent branch");
vstateVPush(ctxt, CONT, NODE, DEPTH, OCCURS, ROLLBACK_PARENT);
}