summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/animationparticle.h2
-rw-r--r--src/configuration.cpp3
-rw-r--r--src/configuration.h3
-rw-r--r--src/main.cpp22
-rw-r--r--src/resources/action.h2
-rw-r--r--src/resources/animation.h2
-rw-r--r--src/resources/chardb.cpp4
-rw-r--r--src/resources/chardb.h2
-rw-r--r--src/resources/colordb.cpp2
-rw-r--r--src/resources/itemdb.cpp4
-rw-r--r--src/resources/mapdb.cpp2
-rw-r--r--src/resources/mapreader.cpp1
-rw-r--r--src/resources/mapreader.h2
-rw-r--r--src/resources/spritedef.cpp2
-rw-r--r--src/resources/spritedef.h2
-rw-r--r--src/rotationalparticle.h2
-rw-r--r--src/utils/xml.cpp16
-rw-r--r--src/utils/xml.h4
18 files changed, 32 insertions, 45 deletions
diff --git a/src/animationparticle.h b/src/animationparticle.h
index 45110501a..27e7d0b22 100644
--- a/src/animationparticle.h
+++ b/src/animationparticle.h
@@ -25,7 +25,7 @@
#include "imageparticle.h"
-#include <libxml/tree.h>
+#include "utils/xml.h"
class Animation;
class Map;
diff --git a/src/configuration.cpp b/src/configuration.cpp
index bed7c0878..40c3ab8c3 100644
--- a/src/configuration.cpp
+++ b/src/configuration.cpp
@@ -27,9 +27,6 @@
#include "utils/paths.h"
#include "utils/stringutils.h"
-#include "utils/xml.h"
-
-#include <libxml/encoding.h>
#include <stdlib.h>
diff --git a/src/configuration.h b/src/configuration.h
index ae8908bfd..7e4c65a40 100644
--- a/src/configuration.h
+++ b/src/configuration.h
@@ -24,9 +24,10 @@
#define CONFIGURATION_H
#include "utils/stringutils.h"
+#include "utils/xml.h"
+
#include "defaults.h"
-#include <libxml/xmlwriter.h>
#include <cassert>
#include <list>
diff --git a/src/main.cpp b/src/main.cpp
index 71794487c..9bffcfa2a 100644
--- a/src/main.cpp
+++ b/src/main.cpp
@@ -27,13 +27,12 @@
#include "client.h"
#include "logger.h"
-#include <libxml/parser.h>
-
#include <getopt.h>
#include <iostream>
#include <physfs.h>
#include "utils/stringutils.h"
+#include "utils/xml.h"
#ifdef __MINGW32__
#include <windows.h>
@@ -210,23 +209,6 @@ static void parseOptions(int argc, char *argv[], Client::Options &options)
extern "C" char const *_nl_locale_name_default(void);
#endif
-static void xmlNullLogger(void *ctx A_UNUSED, const char *msg A_UNUSED, ...)
-{
- // Does nothing, that's the whole point of it
-}
-
-// Initialize libxml2 and check for potential ABI mismatches between
-// compiled version and the shared library actually used.
-static void initXML()
-{
- xmlInitParser();
- LIBXML_TEST_VERSION;
-
- // Suppress libxml2 error messages
- xmlSetGenericErrorFunc(nullptr, xmlNullLogger);
-}
-
-
int main(int argc, char *argv[])
{
#if defined(__MINGW32__)
@@ -262,7 +244,7 @@ int main(int argc, char *argv[])
atexit((void(*)()) PHYSFS_deinit);
- initXML();
+ XML::initXML();
#ifdef WIN32
SetCurrentDirectory(PHYSFS_getBaseDir());
diff --git a/src/resources/action.h b/src/resources/action.h
index 603135875..1e3965363 100644
--- a/src/resources/action.h
+++ b/src/resources/action.h
@@ -23,7 +23,7 @@
#ifndef ACTION_H
#define ACTION_H
-#include <libxml/tree.h>
+#include "utils/xml.h"
#include <map>
diff --git a/src/resources/animation.h b/src/resources/animation.h
index f52234abb..33bfd76e9 100644
--- a/src/resources/animation.h
+++ b/src/resources/animation.h
@@ -23,7 +23,7 @@
#ifndef ANIMATION_H
#define ANIMATION_H
-#include <libxml/tree.h>
+#include "utils/xml.h"
#include <vector>
#include <string>
diff --git a/src/resources/chardb.cpp b/src/resources/chardb.cpp
index c6de2e189..30408c239 100644
--- a/src/resources/chardb.cpp
+++ b/src/resources/chardb.cpp
@@ -24,10 +24,6 @@
#include "client.h"
#include "logger.h"
-#include "utils/xml.h"
-
-#include <libxml/tree.h>
-
#include "debug.h"
namespace
diff --git a/src/resources/chardb.h b/src/resources/chardb.h
index 8be2c34c4..c668c1a73 100644
--- a/src/resources/chardb.h
+++ b/src/resources/chardb.h
@@ -25,7 +25,7 @@
#include <map>
#include <string>
-#include <libxml/tree.h>
+#include "utils/xml.h"
/**
* Char information database.
diff --git a/src/resources/colordb.cpp b/src/resources/colordb.cpp
index 41393541f..2a79f0554 100644
--- a/src/resources/colordb.cpp
+++ b/src/resources/colordb.cpp
@@ -26,8 +26,6 @@
#include "utils/xml.h"
-#include <libxml/tree.h>
-
#include "debug.h"
namespace
diff --git a/src/resources/itemdb.cpp b/src/resources/itemdb.cpp
index e7cc0f931..2c381286a 100644
--- a/src/resources/itemdb.cpp
+++ b/src/resources/itemdb.cpp
@@ -23,6 +23,7 @@
#include "resources/itemdb.h"
#include "client.h"
+#include "configuration.h"
#include "logger.h"
#include "resources/iteminfo.h"
@@ -32,9 +33,6 @@
#include "utils/gettext.h"
#include "utils/stringutils.h"
#include "utils/xml.h"
-#include "configuration.h"
-
-#include <libxml/tree.h>
#include "debug.h"
diff --git a/src/resources/mapdb.cpp b/src/resources/mapdb.cpp
index e61ee45b0..1da3dd908 100644
--- a/src/resources/mapdb.cpp
+++ b/src/resources/mapdb.cpp
@@ -27,8 +27,6 @@
#include "utils/xml.h"
-#include <libxml/tree.h>
-
#include "debug.h"
namespace
diff --git a/src/resources/mapreader.cpp b/src/resources/mapreader.cpp
index 5ebfe5fe3..8c8bf2f9d 100644
--- a/src/resources/mapreader.cpp
+++ b/src/resources/mapreader.cpp
@@ -35,7 +35,6 @@
#include "utils/base64.h"
#include "utils/gettext.h"
#include "utils/stringutils.h"
-#include "utils/xml.h"
#include <iostream>
#include <zlib.h>
diff --git a/src/resources/mapreader.h b/src/resources/mapreader.h
index 301b7d7ce..8fc11e70f 100644
--- a/src/resources/mapreader.h
+++ b/src/resources/mapreader.h
@@ -23,7 +23,7 @@
#ifndef MAPREADER_H
#define MAPREADER_H
-#include <libxml/tree.h>
+#include "utils/xml.h"
#include <string>
diff --git a/src/resources/spritedef.cpp b/src/resources/spritedef.cpp
index 1122cb2e9..40bdb64c8 100644
--- a/src/resources/spritedef.cpp
+++ b/src/resources/spritedef.cpp
@@ -33,8 +33,6 @@
#include "configuration.h"
-#include "utils/xml.h"
-
#include "debug.h"
SpriteReference *SpriteReference::Empty = nullptr;
diff --git a/src/resources/spritedef.h b/src/resources/spritedef.h
index 9e756bdf7..3f656be0d 100644
--- a/src/resources/spritedef.h
+++ b/src/resources/spritedef.h
@@ -25,7 +25,7 @@
#include "resources/resource.h"
-#include <libxml/tree.h>
+#include "utils/xml.h"
#include <list>
#include <map>
diff --git a/src/rotationalparticle.h b/src/rotationalparticle.h
index 19e71e62c..96b7a29ff 100644
--- a/src/rotationalparticle.h
+++ b/src/rotationalparticle.h
@@ -25,7 +25,7 @@
#include "imageparticle.h"
-#include <libxml/tree.h>
+#include "utils/xml.h"
class Animation;
class Map;
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) \