enhanced the enhancement, fixed another couple of special cases.
* parser.c: enhanced the enhancement, fixed another couple of
special cases.
diff --git a/ChangeLog b/ChangeLog
index e83e05d..05472c7 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Fri May 14 12:37:24 HKT 2004 William Brack <wbrack@mmm.com.hk>
+
+ * parser.c: enhanced the enhancement, fixed another couple of
+ special cases.
+
Fri May 14 11:48:33 HKT 2004 William Brack <wbrack@mmm.com.hk>
* parser.c: small enhancement to dtd handling of (a?)+ (bug 142487)
diff --git a/parser.c b/parser.c
index 4810e22..d038e46 100644
--- a/parser.c
+++ b/parser.c
@@ -4794,8 +4794,13 @@
}
NEXT;
if (RAW == '?') {
- if (ret != NULL)
- ret->ocur = XML_ELEMENT_CONTENT_OPT;
+ if (ret != NULL) {
+ if ((ret->ocur == XML_ELEMENT_CONTENT_PLUS) ||
+ (ret->ocur == XML_ELEMENT_CONTENT_MULT))
+ ret->ocur = XML_ELEMENT_CONTENT_MULT;
+ else
+ ret->ocur = XML_ELEMENT_CONTENT_OPT;
+ }
NEXT;
} else if (RAW == '*') {
if (ret != NULL) {
@@ -4822,8 +4827,9 @@
if (ret != NULL) {
int found = 0;
- if (ret->ocur == XML_ELEMENT_CONTENT_OPT)
- ret->ocur == XML_ELEMENT_CONTENT_MULT;
+ if ((ret->ocur == XML_ELEMENT_CONTENT_OPT) ||
+ (ret->ocur == XML_ELEMENT_CONTENT_MULT))
+ ret->ocur = XML_ELEMENT_CONTENT_MULT;
else
ret->ocur = XML_ELEMENT_CONTENT_PLUS;
/*