ConfigData: Add support for signed integers
Now config_param::GetBlockValue() can be used to get signed integers from the configuration.
This commit is contained in:
parent
fc9014f7ec
commit
d6553fc6a7
@ -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
|
||||
{
|
||||
|
@ -45,6 +45,9 @@ struct block_param {
|
||||
block_param(const char *_name, const char *_value, int _line=-1)
|
||||
:name(_name), value(_value), line(_line), used(false) {}
|
||||
|
||||
gcc_pure
|
||||
int GetIntValue() const;
|
||||
|
||||
gcc_pure
|
||||
unsigned GetUnsignedValue() const;
|
||||
|
||||
@ -114,6 +117,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;
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user