Fixed bug #141529 i.e. various problems when building with --without-html

* xmllint.c xmlsave.c python/generator.py python/libxml.c: Fixed
  bug #141529 i.e. various problems when building with --without-html
Daniel
diff --git a/ChangeLog b/ChangeLog
index d9d117a..44616e4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+Sat May  1 01:08:44 CEST 2004 Daniel Veillard <daniel@veillard.com>
+
+	* xmllint.c xmlsave.c python/generator.py python/libxml.c: Fixed
+	  bug #141529 i.e. various problems when building with --without-html
+
 Fri Apr 30 18:12:31 CEST 2004 Daniel Veillard <daniel@veillard.com>
 
 	* xmllint.c xmlreader.c: fixing bug #141384 where the reader didn't
diff --git a/python/generator.py b/python/generator.py
index 0891eed..4c6c8ab 100755
--- a/python/generator.py
+++ b/python/generator.py
@@ -432,7 +432,7 @@
         include.write("#ifdef LIBXML_DEBUG_ENABLED\n");
         export.write("#ifdef LIBXML_DEBUG_ENABLED\n");
         output.write("#ifdef LIBXML_DEBUG_ENABLED\n");
-    elif file == "HTMLtree" or file == "HTMLparser":
+    elif file == "HTMLtree" or file == "HTMLparser" or name[0:4] == "html":
         include.write("#ifdef LIBXML_HTML_ENABLED\n");
         export.write("#ifdef LIBXML_HTML_ENABLED\n");
         output.write("#ifdef LIBXML_HTML_ENABLED\n");
@@ -470,9 +470,17 @@
 
     if file == "python":
         # Those have been manually generated
+        if name[0:4] == "html":
+	    include.write("#endif /* LIBXML_HTML_ENABLED */\n");
+	    export.write("#endif /* LIBXML_HTML_ENABLED */\n");
+	    output.write("#endif /* LIBXML_HTML_ENABLED */\n");
         return 1
     if file == "python_accessor" and ret[0] != "void" and ret[2] is None:
         # Those have been manually generated
+        if name[0:4] == "html":
+	    include.write("#endif /* LIBXML_HTML_ENABLED */\n");
+	    export.write("#endif /* LIBXML_HTML_ENABLED */\n");
+	    output.write("#endif /* LIBXML_HTML_ENABLED */\n");
         return 1
 
     output.write("PyObject *\n")
@@ -501,7 +509,7 @@
         include.write("#endif /* LIBXML_DEBUG_ENABLED */\n");
         export.write("#endif /* LIBXML_DEBUG_ENABLED */\n");
         output.write("#endif /* LIBXML_DEBUG_ENABLED */\n");
-    elif file == "HTMLtree" or file == "HTMLparser":
+    elif file == "HTMLtree" or file == "HTMLparser" or name[0:4] == "html":
         include.write("#endif /* LIBXML_HTML_ENABLED */\n");
         export.write("#endif /* LIBXML_HTML_ENABLED */\n");
         output.write("#endif /* LIBXML_HTML_ENABLED */\n");
diff --git a/python/libxml.c b/python/libxml.c
index 7a19303..4ab69fb 100644
--- a/python/libxml.c
+++ b/python/libxml.c
@@ -1190,6 +1190,7 @@
 libxml_htmlCreatePushParser(ATTRIBUTE_UNUSED PyObject * self,
                             PyObject * args)
 {
+#ifdef LIBXML_HTML_ENABLED
     const char *chunk;
     int size;
     const char *URI;
@@ -1216,6 +1217,10 @@
                                    XML_CHAR_ENCODING_NONE);
     pyret = libxml_xmlParserCtxtPtrWrap(ret);
     return (pyret);
+#else
+    Py_INCREF(Py_None);
+    return (Py_None);
+#endif /* LIBXML_HTML_ENABLED */
 }
 
 PyObject *
@@ -1249,6 +1254,7 @@
 PyObject *
 libxml_htmlSAXParseFile(ATTRIBUTE_UNUSED PyObject * self, PyObject * args)
 {
+#ifdef LIBXML_HTML_ENABLED
     const char *URI;
     const char *encoding;
     PyObject *pyobj_SAX = NULL;
@@ -1273,6 +1279,10 @@
     htmlSAXParseFile(URI, encoding, SAX, pyobj_SAX);
     Py_INCREF(Py_None);
     return (Py_None);
+#else
+    Py_INCREF(Py_None);
+    return (Py_None);
+#endif /* LIBXML_HTML_ENABLED */
 }
 
 /************************************************************************
@@ -2430,6 +2440,7 @@
         xmlDocDumpFormatMemoryEnc(doc, &c_retval, &len,
                                   (const char *) encoding, format);
         py_retval = libxml_charPtrWrap((char *) c_retval);
+#ifdef LIBXML_HTML_ENABLED
     } else if (node->type == XML_HTML_DOCUMENT_NODE) {
         xmlOutputBufferPtr buf;
         xmlCharEncodingHandlerPtr handler = NULL;
@@ -2473,6 +2484,7 @@
         }
         (void) xmlOutputBufferClose(buf);
         py_retval = libxml_charPtrWrap((char *) c_retval);
+#endif /* LIBXML_HTML_ENABLED */
     } else {
         if (node->type == XML_NAMESPACE_DECL)
 	    doc = NULL;
@@ -2508,6 +2520,7 @@
             }
             (void) xmlOutputBufferClose(buf);
             py_retval = libxml_charPtrWrap((char *) c_retval);
+#ifdef LIBXML_HTML_ENABLED
         } else if (doc->type == XML_HTML_DOCUMENT_NODE) {
             xmlOutputBufferPtr buf;
             xmlCharEncodingHandlerPtr handler = NULL;
@@ -2549,6 +2562,7 @@
             }
             (void) xmlOutputBufferClose(buf);
             py_retval = libxml_charPtrWrap((char *) c_retval);
+#endif /* LIBXML_HTML_ENABLED */
         } else {
             Py_INCREF(Py_None);
             return (Py_None);
@@ -2594,10 +2608,12 @@
     } else {
         doc = node->doc;
     }
+#ifdef LIBXML_HTML_ENABLED
     if (doc->type == XML_HTML_DOCUMENT_NODE) {
         if (encoding == NULL)
             encoding = (const char *) htmlGetMetaEncoding(doc);
     }
+#endif /* LIBXML_HTML_ENABLED */
     if (encoding != NULL) {
         handler = xmlFindCharEncodingHandler(encoding);
         if (handler == NULL) {
@@ -2614,12 +2630,14 @@
     buf = xmlOutputBufferCreateFile(output, handler);
     if (node->type == XML_DOCUMENT_NODE) {
         len = xmlSaveFormatFileTo(buf, doc, encoding, format);
+#ifdef LIBXML_HTML_ENABLED
     } else if (node->type == XML_HTML_DOCUMENT_NODE) {
         htmlDocContentDumpFormatOutput(buf, doc, encoding, format);
         len = xmlOutputBufferClose(buf);
     } else if (doc->type == XML_HTML_DOCUMENT_NODE) {
         htmlNodeDumpFormatOutput(buf, doc, node, encoding, format);
         len = xmlOutputBufferClose(buf);
+#endif /* LIBXML_HTML_ENABLED */
     } else {
         xmlNodeDumpOutput(buf, doc, node, 0, format, encoding);
         len = xmlOutputBufferClose(buf);
diff --git a/xmllint.c b/xmllint.c
index d474d20..c4d3218 100644
--- a/xmllint.c
+++ b/xmllint.c
@@ -129,7 +129,7 @@
 #endif
 static int repeat = 0;
 static int insert = 0;
-#ifdef  LIBXML_HTML_ENABLED
+#if defined(LIBXML_HTML_ENABLED) || defined(LIBXML_VALID_ENABLED)
 static int html = 0;
 static int xmlout = 0;
 #endif
@@ -1080,7 +1080,7 @@
 	    if ((timing) && (!repeat)) {
 		startTimer();
 	    }
-#ifdef LIBXML_VALID_ENABLED
+#ifdef LIBXML_HTML_ENABLED
             if ((html) && (!xmlout)) {
 		if (compress) {
 		    htmlSaveFile(output ? output : "-", doc);
diff --git a/xmlsave.c b/xmlsave.c
index 6e31416..b4f6de9 100644
--- a/xmlsave.c
+++ b/xmlsave.c
@@ -14,11 +14,11 @@
 #include <libxml/parserInternals.h>
 #include <libxml/tree.h>
 #include <libxml/xmlsave.h>
-#ifdef LIBXML_HTML_ENABLED
-#include <libxml/HTMLtree.h>
 
 #define MAX_INDENT 60
 
+#include <libxml/HTMLtree.h>
+
 /************************************************************************
  *									*
  *			XHTML detection					*
@@ -63,8 +63,6 @@
     }
     return(0);
 }
-#endif /* LIBXML_HTML_ENABLED */
-
 
 #ifdef LIBXML_OUTPUT_ENABLED