preparing release of 2.4.30 fixups to the api builder, gives enum values,

* configure.in: preparing release of 2.4.30
* doc/apibuild.py doc/libxml2-api.xml: fixups to the api builder,
  gives enum values, fix functype return type, put back fields in
  structs
* doc/*: updated the docs rebuilt
Daniel
diff --git a/doc/apibuild.py b/doc/apibuild.py
index 3e94e93..7f3158e 100755
--- a/doc/apibuild.py
+++ b/doc/apibuild.py
@@ -182,6 +182,10 @@
 	      if self.functions.has_key(id):
 	          up = idx.functions[id]
 	          self.functions[id].update(None, up.type, up.info, up.extra)
+	 #     else:
+	 #         print "Function %s from %s is not declared in headers" % (
+	#	        id, idx.functions[id].module)
+	 # TODO: do the same for variables.
 
      def analyze_dict(self, type, dict):
          count = 0
@@ -1348,12 +1352,12 @@
 	     output.write("    <struct name='%s' file='%s' type='%s'" % (
 	              name, self.modulename_file(id.module), id.info))
 	     name = id.info[7:]
-	     if self.idx.structs.has_key(name) and \
-	        type(self.idx.structs[name]) == type(()):
+	     if self.idx.structs.has_key(name) and ( \
+	        type(self.idx.structs[name].info) == type(()) or
+		type(self.idx.structs[name].info) == type([])):
 	         output.write(">\n");
 		 try:
 		     for field in self.idx.structs[name].info:
-			 print name, field
 			 desc = field[2]
 			 if desc == None:
 			     desc = ''
@@ -1369,6 +1373,15 @@
 	     output.write("    <typedef name='%s' file='%s' type='%s'/>\n" % (
 	              name, self.modulename_file(id.module), id.info))
 
+     def serialize_variable(self, output, name):
+         id = self.idx.variables[name]
+	 if id.info != None:
+	     output.write("    <variable name='%s' file='%s' type='%s'/>\n" % (
+		     name, self.modulename_file(id.module), id.info))
+	 else:
+	     output.write("    <variable name='%s' file='%s'/>\n" % (
+	             name, self.modulename_file(id.module)))
+	              
      def serialize_function(self, output, name):
          id = self.idx.functions[name]
          output.write("    <%s name='%s' file='%s'>\n" % (id.type, name,
@@ -1430,6 +1443,10 @@
 	 typedefs.sort()
 	 for typedef in typedefs:
 	     self.serialize_typedef(output, typedef)
+	 variables = self.idx.variables.keys()
+	 variables.sort()
+	 for variable in variables:
+	     self.serialize_variable(output, variable)
 	 functions = self.idx.functions.keys()
 	 functions.sort()
 	 for function in functions: