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/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);