fixed the push mode when a big comment occurs before an internal subset,

* parser.c: fixed the push mode when a big comment occurs before
  an internal subset, should close bug #438835
* test/comment6.xml result//comment6.xml*: added a special
  test in the regression suite
Daniel

svn path=/trunk/; revision=3635
diff --git a/ChangeLog b/ChangeLog
index 3bd2807..da08616 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+Tue Jun 12 16:42:14 CEST 2007 Daniel Veillard <daniel@veillard.com>
+
+	* parser.c: fixed the push mode when a big comment occurs before
+	  an internal subset, should close bug #438835
+	* test/comment6.xml result//comment6.xml*: added a special
+	  test in the regression suite
+
 Tue Jun 12 15:41:09 CEST 2007 Daniel Veillard <daniel@veillard.com>
 
 	* parser.c: fix bug #414846 where invalid characters in attributes
diff --git a/parser.c b/parser.c
index d79e0b0..e095ab8 100644
--- a/parser.c
+++ b/parser.c
@@ -10153,6 +10153,7 @@
 #endif
 		    xmlParseComment(ctxt);
 		    ctxt->instate = XML_PARSER_MISC;
+		    ctxt->checkIndex = 0;
 		} else if ((cur == '<') && (next == '!') &&
 		    (ctxt->input->cur[2] == 'D') &&
 		    (ctxt->input->cur[3] == 'O') &&
diff --git a/result/comment6.xml b/result/comment6.xml
new file mode 100644
index 0000000..3e6074e
--- /dev/null
+++ b/result/comment6.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!--
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+-->
+<!DOCTYPE a [
+<!ELEMENT a EMPTY>
+]>
+<a/>
diff --git a/result/comment6.xml.rde b/result/comment6.xml.rde
new file mode 100644
index 0000000..e877c3e
--- /dev/null
+++ b/result/comment6.xml.rde
@@ -0,0 +1,11 @@
+0 8 #comment 0 1 
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+
+0 10 a 0 0
+0 1 a 1 0
diff --git a/result/comment6.xml.rdr b/result/comment6.xml.rdr
new file mode 100644
index 0000000..e877c3e
--- /dev/null
+++ b/result/comment6.xml.rdr
@@ -0,0 +1,11 @@
+0 8 #comment 0 1 
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+
+0 10 a 0 0
+0 1 a 1 0
diff --git a/result/comment6.xml.sax b/result/comment6.xml.sax
new file mode 100644
index 0000000..53fea21
--- /dev/null
+++ b/result/comment6.xml.sax
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment(
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+)
+SAX.internalSubset(a, , )
+SAX.elementDecl(a, 1, ...)
+SAX.externalSubset(a, , )
+SAX.startElement(a)
+SAX.endElement(a)
+SAX.endDocument()
diff --git a/result/comment6.xml.sax2 b/result/comment6.xml.sax2
new file mode 100644
index 0000000..7dd7dc0
--- /dev/null
+++ b/result/comment6.xml.sax2
@@ -0,0 +1,17 @@
+SAX.setDocumentLocator()
+SAX.startDocument()
+SAX.comment(
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+)
+SAX.internalSubset(a, , )
+SAX.elementDecl(a, 1, ...)
+SAX.externalSubset(a, , )
+SAX.startElementNs(a, NULL, NULL, 0, 0, 0)
+SAX.endElementNs(a, NULL, NULL)
+SAX.endDocument()
diff --git a/result/noent/comment6.xml b/result/noent/comment6.xml
new file mode 100644
index 0000000..3e6074e
--- /dev/null
+++ b/result/noent/comment6.xml
@@ -0,0 +1,14 @@
+<?xml version="1.0"?>
+<!--
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+long comment long comment long comment long comment long comment long comment
+-->
+<!DOCTYPE a [
+<!ELEMENT a EMPTY>
+]>
+<a/>
diff --git a/test/comment6.xml b/test/comment6.xml
new file mode 100644
index 0000000..014500b
--- /dev/null
+++ b/test/comment6.xml
@@ -0,0 +1,13 @@
+<!--

+long comment long comment long comment long comment long comment long comment

+long comment long comment long comment long comment long comment long comment

+long comment long comment long comment long comment long comment long comment

+long comment long comment long comment long comment long comment long comment

+long comment long comment long comment long comment long comment long comment

+long comment long comment long comment long comment long comment long comment

+long comment long comment long comment long comment long comment long comment

+-->

+<!DOCTYPE a [ 

+<!ELEMENT a EMPTY> 

+]>

+<a/>