aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--liberty.c21
1 files changed, 21 insertions, 0 deletions
diff --git a/liberty.c b/liberty.c
index ca4d38a..c3051d8 100644
--- a/liberty.c
+++ b/liberty.c
@@ -5336,6 +5336,27 @@ config_item_clone (struct config_item *self)
return result;
}
+static struct config_item *
+config_read_from_file (const char *filename, struct error **e)
+{
+ struct config_item *root = NULL;
+
+ struct str data;
+ str_init (&data);
+ if (!read_file (filename, &data, e))
+ goto end;
+
+ struct error *error = NULL;
+ if (!(root = config_item_parse (data.str, data.len, false, &error)))
+ {
+ error_set (e, "parse error in `%s': %s", filename, error->message);
+ error_free (error);
+ }
+end:
+ str_free (&data);
+ return root;
+}
+
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
/// "user_data" is passed so that it be immediately used by validation callbacks