diff options
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/xml.cpp | 16 | ||||
-rw-r--r-- | src/utils/xml.h | 4 |
2 files changed, 20 insertions, 0 deletions
diff --git a/src/utils/xml.cpp b/src/utils/xml.cpp index 87833d176..5a9558cc2 100644 --- a/src/utils/xml.cpp +++ b/src/utils/xml.cpp @@ -32,6 +32,11 @@ #include "debug.h" +static void xmlNullLogger(void *ctx A_UNUSED, const char *msg A_UNUSED, ...) +{ + // Does nothing, that's the whole point of it +} + namespace XML { Document::Document(const std::string &filename, bool useResman): @@ -165,4 +170,15 @@ namespace XML return nullptr; } + // Initialize libxml2 and check for potential ABI mismatches between + // compiled version and the shared library actually used. + void initXML() + { + xmlInitParser(); + LIBXML_TEST_VERSION; + + // Suppress libxml2 error messages + xmlSetGenericErrorFunc(nullptr, xmlNullLogger); + } + } // namespace XML diff --git a/src/utils/xml.h b/src/utils/xml.h index e35a2a06f..2b97b45f5 100644 --- a/src/utils/xml.h +++ b/src/utils/xml.h @@ -23,6 +23,8 @@ #ifndef XML_H #define XML_H +#include <libxml/encoding.h> +#include <libxml/xmlwriter.h> #include <libxml/tree.h> #include <string> @@ -94,6 +96,8 @@ namespace XML * Finds the first child node with the given name */ xmlNodePtr findFirstChildByName(xmlNodePtr parent, const char *name); + + void initXML(); } #define for_each_xml_child_node(var, parent) \ |