Commit f11eb14c authored by Max Kellermann's avatar Max Kellermann

conf: added config_get_positive()

This convenience function parses a configuration value into a positive integer. It aborts if parsing fails.
parent 17222e95
...@@ -407,6 +407,26 @@ config_get_path(const char *name) ...@@ -407,6 +407,26 @@ config_get_path(const char *name)
return param->value = path; return param->value = path;
} }
unsigned
config_get_positive(const char *name, unsigned default_value)
{
struct config_param *param = config_get_param(name);
long value;
char *endptr;
if (param == NULL)
return default_value;
value = strtol(param->value, &endptr, 0);
if (*endptr != 0)
g_error("Not a valid number in line %i", param->line);
if (value <= 0)
g_error("Not a positive number in line %i", param->line);
return (unsigned)value;
}
struct block_param * struct block_param *
getBlockParam(struct config_param * param, const char *name) getBlockParam(struct config_param * param, const char *name)
{ {
......
...@@ -110,6 +110,9 @@ config_get_string(const char *name, const char *default_value); ...@@ -110,6 +110,9 @@ config_get_string(const char *name, const char *default_value);
const char * const char *
config_get_path(const char *name); config_get_path(const char *name);
unsigned
config_get_positive(const char *name, unsigned default_value);
struct block_param * struct block_param *
getBlockParam(struct config_param *param, const char *name); getBlockParam(struct config_param *param, const char *name);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment