From dfac946c3da3ffdc03d80658d6950dfd80da907a Mon Sep 17 00:00:00 2001 From: Daniel Veillard Date: Tue, 12 Jun 2007 14:44:32 +0000 Subject: 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 --- ChangeLog | 7 +++++++ parser.c | 1 + result/comment6.xml | 14 ++++++++++++++ result/comment6.xml.rde | 11 +++++++++++ result/comment6.xml.rdr | 11 +++++++++++ result/comment6.xml.sax | 17 +++++++++++++++++ result/comment6.xml.sax2 | 17 +++++++++++++++++ result/noent/comment6.xml | 14 ++++++++++++++ test/comment6.xml | 13 +++++++++++++ 9 files changed, 105 insertions(+) create mode 100644 result/comment6.xml create mode 100644 result/comment6.xml.rde create mode 100644 result/comment6.xml.rdr create mode 100644 result/comment6.xml.sax create mode 100644 result/comment6.xml.sax2 create mode 100644 result/noent/comment6.xml create mode 100644 test/comment6.xml diff --git a/ChangeLog b/ChangeLog index 3bd2807d..da086169 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,10 @@ +Tue Jun 12 16:42:14 CEST 2007 Daniel Veillard + + * 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 * parser.c: fix bug #414846 where invalid characters in attributes diff --git a/parser.c b/parser.c index d79e0b04..e095ab88 100644 --- a/parser.c +++ b/parser.c @@ -10153,6 +10153,7 @@ xmlParseTryOrFinish(xmlParserCtxtPtr ctxt, int terminate) { #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 00000000..3e6074ef --- /dev/null +++ b/result/comment6.xml @@ -0,0 +1,14 @@ + + + +]> + diff --git a/result/comment6.xml.rde b/result/comment6.xml.rde new file mode 100644 index 00000000..e877c3e4 --- /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 00000000..e877c3e4 --- /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 00000000..53fea219 --- /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 00000000..7dd7dc08 --- /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 00000000..3e6074ef --- /dev/null +++ b/result/noent/comment6.xml @@ -0,0 +1,14 @@ + + + +]> + diff --git a/test/comment6.xml b/test/comment6.xml new file mode 100644 index 00000000..014500bc --- /dev/null +++ b/test/comment6.xml @@ -0,0 +1,13 @@ + + +]> + -- cgit v1.2.1