removing xmldwalk module since it got merged with the xmlreader. cleanup

* Makefile.am configure.in xmldwalk.c xmlreader.c
  include/libxml/Makefile.am include/libxml/xmldwalk.h
  include/libxml/xmlversion.h.in: removing xmldwalk module
  since it got merged with the xmlreader.
* parser.c: cleanup
* win32/libxml2.def.src python/libxml2class.txt doc/libxml2-api.xml:
  rebuilt the API
* python/tests/Makefile.am python/tests/reader7.py
  python/tests/walker.py: adding regression testing for the
  new xmlreader APIs, new APIs for reader creation, including
  makeing reader "walker" operating on preparsed document trees.
Daniel
diff --git a/python/generator.py b/python/generator.py
index 732b8b9..79eeeb5 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -303,6 +303,24 @@
     # the next function is defined in libxml.c
     if name == "xmlRelaxNGFreeValidCtxt":
         return 1
+#
+# Those are skipped because the Const version is used of the bindings
+# instead.
+#
+    if name == "xmlTextReaderBaseUri":
+        return 1
+    if name == "xmlTextReaderLocalName":
+        return 1
+    if name == "xmlTextReaderName":
+        return 1
+    if name == "xmlTextReaderNamespaceUri":
+        return 1
+    if name == "xmlTextReaderPrefix":
+        return 1
+    if name == "xmlTextReaderXmlLang":
+        return 1
+    if name == "xmlTextReaderValue":
+        return 1
     return 0
 
 def print_function_wrapper(name, output, export, include):
@@ -718,8 +736,12 @@
         func = "regexp" + name[6:]
     elif name[0:20] == "xmlTextReaderLocator" and file == "xmlreader":
         func = name[20:]
+    elif name[0:18] == "xmlTextReaderConst" and file == "xmlreader":
+        func = name[18:]
     elif name[0:13] == "xmlTextReader" and file == "xmlreader":
         func = name[13:]
+    elif name[0:12] == "xmlReaderNew" and file == "xmlreader":
+        func = name[9:]
     elif name[0:11] == "xmlACatalog":
         func = name[11:]
         func = string.lower(func[0:1]) + func[1:]
diff --git a/python/libxml2class.txt b/python/libxml2class.txt
index 1f8b3e7..863982c 100644
--- a/python/libxml2class.txt
+++ b/python/libxml2class.txt
@@ -584,6 +584,10 @@
     # functions from module xinclude
     xincludeProcess()
 
+    # functions from module xmlreader
+    NewWalker()
+    readerWalker()
+
     # functions from module xpath
     xpathNewContext()
     xpathOrderDocElems()
@@ -667,13 +671,6 @@
     AttributeCount()
     BaseUri()
     Close()
-    ConstBaseUri()
-    ConstLocalName()
-    ConstName()
-    ConstNamespaceUri()
-    ConstPrefix()
-    ConstString()
-    ConstXmlLang()
     CurrentDoc()
     CurrentNode()
     Depth()
@@ -698,7 +695,13 @@
     MoveToNextAttribute()
     Name()
     NamespaceUri()
+    NewDoc()
+    NewFd()
+    NewFile()
+    NewMemory()
+    NewWalker()
     Next()
+    NextSibling()
     NodeType()
     Normalization()
     Prefix()
@@ -713,12 +716,9 @@
     RelaxNGSetSchema()
     RelaxNGValidate()
     SetParserProp()
+    String()
     Value()
     XmlLang()
-    readerNewDoc()
-    readerNewFd()
-    readerNewFile()
-    readerNewMemory()
 Class xmlReg()
 
     # functions from module xmlregexp
diff --git a/python/tests/Makefile.am b/python/tests/Makefile.am
index d4e91dd..3d5989d 100644
--- a/python/tests/Makefile.am
+++ b/python/tests/Makefile.am
@@ -26,6 +26,8 @@
     reader4.py	\
     reader5.py	\
     reader6.py	\
+    reader7.py	\
+    walker.py	\
     ctxterror.py\
     readererr.py\
     relaxng.py	\
diff --git a/python/tests/reader7.py b/python/tests/reader7.py
new file mode 100755
index 0000000..35a426f
--- /dev/null
+++ b/python/tests/reader7.py
@@ -0,0 +1,102 @@
+#!/usr/bin/python -u
+#
+# this tests the entities substitutions with the XmlTextReader interface
+#
+import sys
+import StringIO
+import libxml2
+
+# Memory debug specific
+libxml2.debugMemory(1)
+
+result = ""
+def processNode(reader):
+    global result
+
+    result = result + "%d %d %s %d\n" % (reader.Depth(), reader.NodeType(),
+			   reader.Name(), reader.IsEmptyElement())
+
+#
+# Parse a document testing the readerForxxx API
+#
+docstr="""<foo>
+<label>some text</label>
+<item>100</item>
+</foo>"""
+expect="""0 1 foo 0
+1 14 #text 0
+1 1 label 0
+2 3 #text 0
+1 15 label 0
+1 14 #text 0
+1 1 item 0
+2 3 #text 0
+1 15 item 0
+1 14 #text 0
+0 15 foo 0
+"""
+result = ""
+
+reader = libxml2.readerForDoc(docstr, "test1", None, 0)
+ret = reader.Read()
+while ret == 1:
+    processNode(reader)
+    ret = reader.Read()
+
+if ret != 0:
+    print "Error parsing the document test1"
+    sys.exit(1)
+
+if result != expect:
+    print "Unexpected result for test1"
+    print result
+    sys.exit(1)
+
+#
+# Reuse the reader for another document testing the ReaderNewxxx API
+#
+docstr="""<foo>
+<label>some text</label>
+<item>1000</item>
+</foo>"""
+expect="""0 1 foo 0
+1 14 #text 0
+1 1 label 0
+2 3 #text 0
+1 15 label 0
+1 14 #text 0
+1 1 item 0
+2 3 #text 0
+1 15 item 0
+1 14 #text 0
+0 15 foo 0
+"""
+result = ""
+
+reader.NewDoc(docstr, "test2", None, 0)
+ret = reader.Read()
+while ret == 1:
+    processNode(reader)
+    ret = reader.Read()
+
+if ret != 0:
+    print "Error parsing the document test2"
+    sys.exit(1)
+
+if result != expect:
+    print "Unexpected result for test2"
+    print result
+    sys.exit(1)
+
+#
+# cleanup
+#
+del reader
+
+# Memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+    print "OK"
+else:
+    print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+    libxml2.dumpMemory()
diff --git a/python/tests/walker.py b/python/tests/walker.py
new file mode 100755
index 0000000..3b5a62a
--- /dev/null
+++ b/python/tests/walker.py
@@ -0,0 +1,145 @@
+#!/usr/bin/python -u
+#
+# this tests the entities substitutions with the XmlTextReader interface
+#
+import sys
+import StringIO
+import libxml2
+
+# Memory debug specific
+libxml2.debugMemory(1)
+
+result = ""
+def processNode(reader):
+    global result
+
+    result = result + "%d %d %s %d\n" % (reader.Depth(), reader.NodeType(),
+			   reader.Name(), reader.IsEmptyElement())
+
+#
+# Parse a document testing the readerForxxx API
+#
+docstr="""<foo>
+<label>some text</label>
+<item>100</item>
+</foo>"""
+expect="""0 1 foo 0
+1 14 #text 0
+1 1 label 0
+2 3 #text 0
+1 15 label 0
+1 14 #text 0
+1 1 item 0
+2 3 #text 0
+1 15 item 0
+1 14 #text 0
+0 15 foo 0
+"""
+result = ""
+
+doc = libxml2.parseDoc(docstr)
+reader = doc.readerWalker();
+ret = reader.Read()
+while ret == 1:
+    processNode(reader)
+    ret = reader.Read()
+
+if ret != 0:
+    print "Error parsing the document test1"
+    sys.exit(1)
+
+if result != expect:
+    print "Unexpected result for test1"
+    print result
+    sys.exit(1)
+
+doc.freeDoc()
+
+#
+# Reuse the reader for another document testing the ReaderNewWalker API
+#
+docstr="""<foo>
+<label>some text</label>
+<item>1000</item>
+</foo>"""
+expect="""0 1 foo 0
+1 14 #text 0
+1 1 label 0
+2 3 #text 0
+1 15 label 0
+1 14 #text 0
+1 1 item 0
+2 3 #text 0
+1 15 item 0
+1 14 #text 0
+0 15 foo 0
+"""
+result = ""
+
+doc = libxml2.parseDoc(docstr)
+reader.NewWalker(doc)
+
+ret = reader.Read()
+while ret == 1:
+    processNode(reader)
+    ret = reader.Read()
+
+if ret != 0:
+    print "Error parsing the document test2"
+    sys.exit(1)
+
+if result != expect:
+    print "Unexpected result for test2"
+    print result
+    sys.exit(1)
+
+doc.freeDoc()
+
+#
+# Reuse the reader for another document testing the ReaderNewxxx API
+#
+docstr="""<foo>
+<label>some text</label>
+<item>1000</item>
+</foo>"""
+expect="""0 1 foo 0
+1 14 #text 0
+1 1 label 0
+2 3 #text 0
+1 15 label 0
+1 14 #text 0
+1 1 item 0
+2 3 #text 0
+1 15 item 0
+1 14 #text 0
+0 15 foo 0
+"""
+result = ""
+
+reader.NewDoc(docstr, "test3", None, 0)
+ret = reader.Read()
+while ret == 1:
+    processNode(reader)
+    ret = reader.Read()
+
+if ret != 0:
+    print "Error parsing the document test3"
+    sys.exit(1)
+
+if result != expect:
+    print "Unexpected result for test3"
+    print result
+    sys.exit(1)
+
+#
+# cleanup
+#
+del reader
+
+# Memory debug specific
+libxml2.cleanupParser()
+if libxml2.debugMemory(1) == 0:
+    print "OK"
+else:
+    print "Memory leak %d bytes" % (libxml2.debugMemory(1))
+    libxml2.dumpMemory()