diff options
author | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2025-01-19 20:29:13 +0100 |
---|---|---|
committer | Thorbjørn Lindeijer <bjorn@lindeijer.nl> | 2025-01-20 10:46:09 +0100 |
commit | aa2613c7037bd12448d58714b4bb317ea939d892 (patch) | |
tree | 8fb57a581b439b08d95a85ad57c2b6d1d91e17c4 /src/configuration.cpp | |
parent | bbbc318634f3be2c4d755e71d99cdfba5c2b82f3 (diff) | |
download | mana-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.cpp | 23 |
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; |