parser: Fix parsing of DTD content

Regressed in 2.11. Fixes #868.
diff --git a/parser.c b/parser.c
index 8fe0a06..474644c 100644
--- a/parser.c
+++ b/parser.c
@@ -6868,7 +6868,11 @@
 		    xmlParseComment(ctxt);
 		    break;
 		default:
-		    /* there is an error but it will be detected later */
+                    xmlFatalErr(ctxt,
+                                ctxt->inSubset == 2 ?
+                                    XML_ERR_EXT_SUBSET_NOT_FINISHED :
+                                    XML_ERR_DOCTYPE_NOT_FINISHED,
+                                NULL);
                     SKIP(2);
 		    break;
 	    }
diff --git a/result/errors/759573-2.xml.ent b/result/errors/759573-2.xml.ent
index 01c8157..5f0d4a2 100644
--- a/result/errors/759573-2.xml.ent
+++ b/result/errors/759573-2.xml.ent
@@ -16,6 +16,12 @@
 Entity: line 1: 
 <!ENTITY<?xDOCTYPEm~?>
                    ^
+./test/errors/759573-2.xml:6: parser error : DOCTYPE improperly terminated
+%xx;
+    ^
+Entity: line 2: 
+<![INCLUDE[
+^
 ./test/errors/759573-2.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
 
 %xx;
diff --git a/result/errors/759573-2.xml.err b/result/errors/759573-2.xml.err
index 01c8157..5f0d4a2 100644
--- a/result/errors/759573-2.xml.err
+++ b/result/errors/759573-2.xml.err
@@ -16,6 +16,12 @@
 Entity: line 1: 
 <!ENTITY<?xDOCTYPEm~?>
                    ^
+./test/errors/759573-2.xml:6: parser error : DOCTYPE improperly terminated
+%xx;
+    ^
+Entity: line 2: 
+<![INCLUDE[
+^
 ./test/errors/759573-2.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
 
 %xx;
diff --git a/result/errors/759573-2.xml.str b/result/errors/759573-2.xml.str
index 39f77a6..6cf8179 100644
--- a/result/errors/759573-2.xml.str
+++ b/result/errors/759573-2.xml.str
@@ -16,6 +16,12 @@
 Entity: line 1: 
 <!ENTITY<?xDOCTYPEm~?>
                    ^
+./test/errors/759573-2.xml:6: parser error : DOCTYPE improperly terminated
+%xx;
+    ^
+Entity: line 2: 
+<![INCLUDE[
+^
 ./test/errors/759573-2.xml:6: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
 
 %xx;
diff --git a/result/errors/759573.xml.ent b/result/errors/759573.xml.ent
index 74322b6..1b81106 100644
--- a/result/errors/759573.xml.ent
+++ b/result/errors/759573.xml.ent
@@ -13,6 +13,12 @@
 Entity: line 1: 
 %<![INCLUDE[000%ஸ000%z;
  ^
+./test/errors/759573.xml:1: parser error : DOCTYPE improperly terminated
+T t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz>%xx;
+                                                                               ^
+Entity: line 1: 
+%<![INCLUDE[000%ஸ000%z;
+ ^
 ./test/errors/759573.xml:1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
 
 T t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz>%xx;
diff --git a/result/errors/759573.xml.err b/result/errors/759573.xml.err
index 74322b6..1b81106 100644
--- a/result/errors/759573.xml.err
+++ b/result/errors/759573.xml.err
@@ -13,6 +13,12 @@
 Entity: line 1: 
 %<![INCLUDE[000%ஸ000%z;
  ^
+./test/errors/759573.xml:1: parser error : DOCTYPE improperly terminated
+T t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz>%xx;
+                                                                               ^
+Entity: line 1: 
+%<![INCLUDE[000%ஸ000%z;
+ ^
 ./test/errors/759573.xml:1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
 
 T t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz>%xx;
diff --git a/result/errors/759573.xml.str b/result/errors/759573.xml.str
index 37df762..b4962e9 100644
--- a/result/errors/759573.xml.str
+++ b/result/errors/759573.xml.str
@@ -13,6 +13,12 @@
 Entity: line 1: 
 %<![INCLUDE[000%ஸ000%z;
  ^
+./test/errors/759573.xml:1: parser error : DOCTYPE improperly terminated
+T t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz>%xx;
+                                                                               ^
+Entity: line 1: 
+%<![INCLUDE[000%ஸ000%z;
+ ^
 ./test/errors/759573.xml:1: parser error : internal error: xmlParseInternalSubset: error detected in Markup declaration
 
 T t (A)><!ENTITY % xx '&#37;<![INCLUDE[000&#37;&#3000;000&#37;z;'><!ENTITYz>%xx;
diff --git a/result/errors/issue868.xml.ent b/result/errors/issue868.xml.ent
new file mode 100644
index 0000000..5b5d580
--- /dev/null
+++ b/result/errors/issue868.xml.ent
@@ -0,0 +1,3 @@
+./test/errors/issue868.xml:3: parser error : DOCTYPE improperly terminated
+<!]>
+^
diff --git a/result/errors/issue868.xml.err b/result/errors/issue868.xml.err
new file mode 100644
index 0000000..5b5d580
--- /dev/null
+++ b/result/errors/issue868.xml.err
@@ -0,0 +1,3 @@
+./test/errors/issue868.xml:3: parser error : DOCTYPE improperly terminated
+<!]>
+^
diff --git a/result/errors/issue868.xml.str b/result/errors/issue868.xml.str
new file mode 100644
index 0000000..e886a3b
--- /dev/null
+++ b/result/errors/issue868.xml.str
@@ -0,0 +1,4 @@
+./test/errors/issue868.xml:3: parser error : DOCTYPE improperly terminated
+<!]>
+^
+./test/errors/issue868.xml : failed to parse
diff --git a/test/errors/issue868.xml b/test/errors/issue868.xml
new file mode 100644
index 0000000..e08ad3e
--- /dev/null
+++ b/test/errors/issue868.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<!DOCTYPE rss [
+<!]>
+<rss>
+<channel>
+<image/>
+<title>PP</title>
+</channel>
+</rss>