fixed a problem with validation within entities pointed by Stéphane

* xmlreader.c python/tests/reader2.py: fixed a problem with
  validation within entities pointed by Stéphane Bidoul, augmented
  the tests to catch those.
Daniel
diff --git a/python/tests/reader2.py b/python/tests/reader2.py
index 82e46bd..ea2f782 100755
--- a/python/tests/reader2.py
+++ b/python/tests/reader2.py
@@ -5,6 +5,7 @@
 import sys
 import glob
 import string
+import StringIO
 import libxml2
 
 # Memory debug specific
@@ -43,6 +44,58 @@
 if err != expect:
     print err
 
+#
+# another separate test based on Stephane Bidoul one
+#
+s = """
+<!DOCTYPE test [
+<!ELEMENT test (x,b)>
+<!ELEMENT x (c)>
+<!ELEMENT b (#PCDATA)>
+<!ELEMENT c (#PCDATA)>
+<!ENTITY x "<x><c>xxx</c></x>">
+]>
+<test>
+    &x;
+    <b>bbb</b>
+</test>
+"""
+expect="""1,test
+3,#text
+1,x
+1,c
+3,#text
+15,c
+15,x
+3,#text
+1,b
+3,#text
+15,b
+3,#text
+15,test
+"""
+res=""
+err=""
+
+input = libxml2.inputBuffer(StringIO.StringIO(s))
+reader = input.newTextReader("test2")
+reader.SetParserProp(libxml2.PARSER_LOADDTD,1)
+reader.SetParserProp(libxml2.PARSER_DEFAULTATTRS,1)
+reader.SetParserProp(libxml2.PARSER_SUBST_ENTITIES,1)
+reader.SetParserProp(libxml2.PARSER_VALIDATE,1)
+while reader.Read() == 1:
+    res = res + "%s,%s\n" % (reader.NodeType(),reader.Name())
+
+if res != expect:
+    print "test2 failed: unexpected output"
+    print res
+    sys.exit(1)
+if err != "":
+    print "test2 failed: validation error found"
+    print err
+    sys.exit(1)
+
+del input
 del reader
 
 # Memory debug specific