aboutsummaryrefslogtreecommitdiff
path: root/src/conf.c
diff options
context:
space:
mode:
authorMax Kellermann <max@duempel.org>2011-09-09 22:15:28 +0200
committerMax Kellermann <max@duempel.org>2011-09-09 23:01:22 +0200
commit9f5c938ff3cfe6f264340461c88defa2bb614cb0 (patch)
treeb26252f3da5bd374c15cc9b6b03a8849b398a4e3 /src/conf.c
parentb42a8d236434d7ec63c742d275cd7b75adbe760b (diff)
conf: add config_dup_block_path()
Diffstat (limited to 'src/conf.c')
-rw-r--r--src/conf.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/src/conf.c b/src/conf.c
index 245a2a81..9e9c199f 100644
--- a/src/conf.c
+++ b/src/conf.c
@@ -606,6 +606,26 @@ config_get_block_string(const struct config_param *param, const char *name,
return bp->value;
}
+char *
+config_dup_block_path(const struct config_param *param, const char *name,
+ GError **error_r)
+{
+ assert(error_r != NULL);
+ assert(*error_r == NULL);
+
+ const struct block_param *bp = config_get_block_param(param, name);
+ if (bp == NULL)
+ return NULL;
+
+ char *path = parsePath(bp->value, error_r);
+ if (G_UNLIKELY(path == NULL))
+ g_prefix_error(error_r,
+ "Invalid path in \"%s\" at line %i: ",
+ name, bp->line);
+
+ return path;
+}
+
unsigned
config_get_block_unsigned(const struct config_param *param, const char *name,
unsigned default_value)