summaryrefslogtreecommitdiff
path: root/src/configuration.cpp
diff options
context:
space:
mode:
authorThorbjørn Lindeijer <bjorn@lindeijer.nl>2025-01-19 20:29:13 +0100
committerThorbjørn Lindeijer <bjorn@lindeijer.nl>2025-01-20 10:46:09 +0100
commitaa2613c7037bd12448d58714b4bb317ea939d892 (patch)
tree8fb57a581b439b08d95a85ad57c2b6d1d91e17c4 /src/configuration.cpp
parentbbbc318634f3be2c4d755e71d99cdfba5c2b82f3 (diff)
downloadmana-aa2613c7037bd12448d58714b4bb317ea939d892.tar.gz
mana-aa2613c7037bd12448d58714b4bb317ea939d892.tar.bz2
mana-aa2613c7037bd12448d58714b4bb317ea939d892.tar.xz
mana-aa2613c7037bd12448d58714b4bb317ea939d892.zip
Wrapped xmlNodePtr access with a Node class
Slightly more ergonomic and this eliminates direct libxml2 usage from many places.
Diffstat (limited to 'src/configuration.cpp')
-rw-r--r--src/configuration.cpp23
1 files changed, 11 insertions, 12 deletions
diff --git a/src/configuration.cpp b/src/configuration.cpp
index 084c8563..5fc4eabd 100644
--- a/src/configuration.cpp
+++ b/src/configuration.cpp
@@ -206,21 +206,20 @@ bool Configuration::getBoolValue(const std::string &key) const
return defaultValue;
}
-void ConfigurationObject::initFromXML(xmlNodePtr parent_node)
+void ConfigurationObject::initFromXML(XML::Node parent_node)
{
clear();
- for (auto node : XML::Children(parent_node))
+ for (auto node : parent_node.children())
{
- if (xmlStrEqual(node->name, BAD_CAST "list"))
+ if (node.name() == "list")
{
// List option handling.
- std::string name = XML::getProperty(node, "name", std::string());
+ std::string name = node.getProperty("name", std::string());
- for (auto subnode : XML::Children(node))
+ for (auto subnode : node.children())
{
- if (xmlStrEqual(subnode->name, BAD_CAST name.c_str())
- && subnode->type == XML_ELEMENT_NODE)
+ if (subnode.name() == name)
{
auto *cobj = new ConfigurationObject;
@@ -231,11 +230,11 @@ void ConfigurationObject::initFromXML(xmlNodePtr parent_node)
}
}
- else if (xmlStrEqual(node->name, BAD_CAST "option"))
+ else if (node.name() == "option")
{
// Single option handling.
- std::string name = XML::getProperty(node, "name", std::string());
- std::string value = XML::getProperty(node, "value", std::string());
+ std::string name = node.getProperty("name", std::string());
+ std::string value = node.getProperty("value", std::string());
if (!name.empty())
mOptions[name] = value;
@@ -258,9 +257,9 @@ void Configuration::init(const std::string &filename, bool useResManager)
return;
}
- xmlNodePtr rootNode = doc.rootNode();
+ XML::Node rootNode = doc.rootNode();
- if (!rootNode || !xmlStrEqual(rootNode->name, BAD_CAST "configuration"))
+ if (!rootNode || rootNode.name() != "configuration")
{
logger->log("Warning: No configuration file (%s)", filename.c_str());
return;