diff --git a/libosmscout-gpx/src/osmscoutgpx/Import.cpp b/libosmscout-gpx/src/osmscoutgpx/Import.cpp index 49ba6353d..0ff091a9e 100644 --- a/libosmscout-gpx/src/osmscoutgpx/Import.cpp +++ b/libosmscout-gpx/src/osmscoutgpx/Import.cpp @@ -335,12 +335,20 @@ class GpxParser{ return xmlGetPredefinedEntity(name); } - static void StructuredErrorHandler(void* data, xmlErrorPtr error) + // overloaded method for libxml2 >= 2.12.0 + static void StructuredErrorHandler(void* data, const xmlError *error) { auto* parser=static_cast(data); parser->Error("XML error, line " + std::to_string(error->line) + ": " + error->message); } + // overloaded method for libxml2 < 2.12.0 + [[maybe_unused]] + static void StructuredErrorHandler(void* data, xmlErrorPtr error) + { + StructuredErrorHandler(data, static_cast(error)); + } + static void WarningHandler(void* data, const char* msg,...) { auto* parser=static_cast(data); diff --git a/libosmscout-import/src/osmscoutimport/PreprocessOSM.cpp b/libosmscout-import/src/osmscoutimport/PreprocessOSM.cpp index 7159e77a7..8b2514765 100644 --- a/libosmscout-import/src/osmscoutimport/PreprocessOSM.cpp +++ b/libosmscout-import/src/osmscoutimport/PreprocessOSM.cpp @@ -339,11 +339,19 @@ namespace osmscout { return xmlGetPredefinedEntity(name); } - static void StructuredErrorHandler(void* /*data*/, xmlErrorPtr error) + // overloaded method for libxml2 >= 2.12.0 + static void StructuredErrorHandler(void* /*data*/, const xmlError *error) { std::cerr << "XML error, line " << error->line << ": " << error->message << std::endl; } + // overloaded method for libxml2 < 2.12.0 + [[maybe_unused]] + static void StructuredErrorHandler(void* data, xmlErrorPtr error) + { + StructuredErrorHandler(data, static_cast(error)); + } + static void WarningHandler(void* /*data*/, const char* msg,...) { std::cerr << "XML warning:" << msg << std::endl;