diff options
author | Andrei Karas <akaras@inbox.ru> | 2012-06-28 21:59:59 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2012-06-28 21:59:59 +0300 |
commit | 503a2b302d9e13b99be4574e5d7b8821dd31504d (patch) | |
tree | 34ecba674db95cdedb9fe8f5767b0dfa22571e86 /src/utils/xml.cpp | |
parent | 6207ffb9a38c7e3718b7c4d87500ea9360d4d44f (diff) | |
download | manaplus-503a2b302d9e13b99be4574e5d7b8821dd31504d.tar.gz manaplus-503a2b302d9e13b99be4574e5d7b8821dd31504d.tar.bz2 manaplus-503a2b302d9e13b99be4574e5d7b8821dd31504d.tar.xz manaplus-503a2b302d9e13b99be4574e5d7b8821dd31504d.zip |
Add validation for some xml parameters.
Diffstat (limited to 'src/utils/xml.cpp')
-rw-r--r-- | src/utils/xml.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/utils/xml.cpp b/src/utils/xml.cpp index 140da72df..f7350ce92 100644 --- a/src/utils/xml.cpp +++ b/src/utils/xml.cpp @@ -122,6 +122,23 @@ namespace XML return ret; } + int getIntProperty(XmlNodePtr node, const char* name, int def, int min, int max) + { + int &ret = def; + + xmlChar *prop = xmlGetProp(node, BAD_CAST name); + if (prop) + { + ret = atoi(reinterpret_cast<char*>(prop)); + xmlFree(prop); + } + if (ret < min) + ret = min; + else if (ret > max) + ret = max; + return ret; + } + double getFloatProperty(XmlNodePtr node, const char* name, double def) { double &ret = def; |