applied patch from Stephane Bidoul to add enums to the Python bindings.

* python/generator.py python/tests/tstLastError.py: applied
  patch from Stephane Bidoul to add enums to the Python bindings.
Daniel
diff --git a/ChangeLog b/ChangeLog
index 9c43093..32977bb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Thu Jan 15 00:48:46 CET 2004 Daniel Veillard <daniel@veillard.com>
+
+	* python/generator.py python/tests/tstLastError.py: applied
+	  patch from Stephane Bidoul to add enums to the Python bindings.
+
 Tue Jan 13 21:50:05 CET 2004 Daniel Veillard <daniel@veillard.com>
 
 	* testHTML.c: another small patch from Mark Vadoc
diff --git a/python/generator.py b/python/generator.py
index db7be28..0891eed 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -4,6 +4,7 @@
 #
 
 functions = {}
+enums = {} # { enumType: { enumConstant: enumValue } }
 
 import sys
 import string
@@ -137,7 +138,8 @@
                     self.function_return_info = attrs['info']
                 if attrs.has_key('field'):
                     self.function_return_field = attrs['field']
-
+        elif tag == 'enum':
+            enum(attrs['type'],attrs['name'],attrs['value'])
 
     def end(self, tag):
         if debug:
@@ -167,10 +169,13 @@
                 
                 
 def function(name, desc, ret, args, file):
-    global functions
-
     functions[name] = (desc, ret, args, file)
 
+def enum(type, name, value):
+    if not enums.has_key(type):
+        enums[type] = {}
+    enums[type][name] = value
+
 #######################################################################
 #
 #  Some filtering rukes to drop functions/types which should not
@@ -1161,9 +1166,19 @@
 			classes.write("        return ret\n");
 		classes.write("\n");
 
+    #
+    # Generate enum constants
+    #
+    for type,enum in enums.items():
+        classes.write("# %s\n" % type)
+        items = enum.items()
+        items.sort(lambda i1,i2: cmp(long(i1[1]),long(i2[1])))
+        for name,value in items:
+            classes.write("%s = %s\n" % (name,value))
+        classes.write("\n");
+
     txt.close()
     classes.close()
 
-
 buildStubs()
 buildWrappers()
diff --git a/python/tests/tstLastError.py b/python/tests/tstLastError.py
index 12229e8..83e98b8 100755
--- a/python/tests/tstLastError.py
+++ b/python/tests/tstLastError.py
@@ -48,10 +48,10 @@
         self.failUnlessXmlError(libxml2.readFile,
                         ("dummy.xml",None,0),
                         libxml2.treeError,
-                        domain=8, # XML_FROM_IO
-                        code=1549, # XML_IO_LOAD_ERROR
+                        domain=libxml2.XML_FROM_IO,
+                        code=libxml2.XML_IO_LOAD_ERROR,
                         message='failed to load external entity "dummy.xml"\n',
-                        level=1, # XML_ERR_WARNING
+                        level=libxml2.XML_ERR_WARNING,
                         file=None,
                         line=0)
 
@@ -61,10 +61,10 @@
         self.failUnlessXmlError(libxml2.readMemory,
                         (s,len(s),"dummy.xml",None,0),
                         libxml2.treeError,
-                        domain=1, # XML_FROM_PARSER
-                        code=77, # XML_ERR_TAG_NOT_FINISHED
+                        domain=libxml2.XML_FROM_PARSER,
+                        code=libxml2.XML_ERR_TAG_NOT_FINISHED,
                         message='Premature end of data in tag x line 1\n',
-                        level=3, # XML_ERR_FATAL
+                        level=libxml2.XML_ERR_FATAL,
                         file='dummy.xml',
                         line=3)