From 780dda83ba3857bc3c330d4b5d38bb251a9d879b Mon Sep 17 00:00:00 2001 From: Peter Powell Date: Sat, 14 Apr 2018 15:43:03 +0100 Subject: Add ConfigTag::getUInt for reading unsigned config values. --- src/configparser.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/configparser.cpp') diff --git a/src/configparser.cpp b/src/configparser.cpp index 624f3aea6..5ee86c811 100644 --- a/src/configparser.cpp +++ b/src/configparser.cpp @@ -496,6 +496,23 @@ long ConfigTag::getInt(const std::string &key, long def, long min, long max) return res; } +unsigned long ConfigTag::getUInt(const std::string& key, unsigned long def, unsigned long min, unsigned long max) +{ + std::string result; + if (!readString(key, result)) + return def; + + const char* res_cstr = result.c_str(); + char* res_tail = NULL; + unsigned long res = strtoul(res_cstr, &res_tail, 0); + if (res_tail == res_cstr) + return def; + + CheckMagnitude(tag, key, result, res, def, res_tail); + CheckRange(tag, key, res, def, min, max); + return res; +} + unsigned long ConfigTag::getDuration(const std::string& key, unsigned long def, unsigned long min, unsigned long max) { std::string duration; -- cgit v1.3.1-10-gc9f91