aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSebastian Thorarensen <sebth@naju.se>2013-10-19 15:38:50 +0200
committerMax Kellermann <max@duempel.org>2013-10-19 16:11:33 +0200
commitd6553fc6a73ce458aa1fabe78dbb45b5b6a1ac12 (patch)
treeca5c0edbd15afdb8d11b9a1268c9b0df37776887
parentfc9014f7ecb486288b8f7d0d376f68b27f60dd6f (diff)
downloadmpd-d6553fc6a73ce458aa1fabe78dbb45b5b6a1ac12.tar.gz
mpd-d6553fc6a73ce458aa1fabe78dbb45b5b6a1ac12.tar.xz
mpd-d6553fc6a73ce458aa1fabe78dbb45b5b6a1ac12.zip
ConfigData: Add support for signed integers
Now config_param::GetBlockValue() can be used to get signed integers from the configuration.
-rw-r--r--src/ConfigData.cxx21
-rw-r--r--src/ConfigData.hxx6
2 files changed, 27 insertions, 0 deletions
diff --git a/src/ConfigData.cxx b/src/ConfigData.cxx
index 395d768f6..9712eef3e 100644
--- a/src/ConfigData.cxx
+++ b/src/ConfigData.cxx
@@ -29,6 +29,17 @@
#include <string.h>
#include <stdlib.h>
+int
+block_param::GetIntValue() const
+{
+ char *endptr;
+ long value2 = strtol(value.c_str(), &endptr, 0);
+ if (*endptr != 0)
+ FormatFatalError("Not a valid number in line %i", line);
+
+ return value2;
+}
+
unsigned
block_param::GetUnsignedValue() const
{
@@ -120,6 +131,16 @@ config_param::GetBlockPath(const char *name, Error &error) const
return GetBlockPath(name, nullptr, error);
}
+int
+config_param::GetBlockValue(const char *name, int default_value) const
+{
+ const block_param *bp = GetBlockParam(name);
+ if (bp == nullptr)
+ return default_value;
+
+ return bp->GetIntValue();
+}
+
unsigned
config_param::GetBlockValue(const char *name, unsigned default_value) const
{
diff --git a/src/ConfigData.hxx b/src/ConfigData.hxx
index d85228cc3..b41b27420 100644
--- a/src/ConfigData.hxx
+++ b/src/ConfigData.hxx
@@ -46,6 +46,9 @@ struct block_param {
:name(_name), value(_value), line(_line), used(false) {}
gcc_pure
+ int GetIntValue() const;
+
+ gcc_pure
unsigned GetUnsignedValue() const;
gcc_pure
@@ -115,6 +118,9 @@ struct config_param {
AllocatedPath GetBlockPath(const char *name, Error &error) const;
gcc_pure
+ int GetBlockValue(const char *name, int default_value) const;
+
+ gcc_pure
unsigned GetBlockValue(const char *name, unsigned default_value) const;
gcc_pure