From 952cf985dca6a97ee662f3b189788089abd2ef57 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?P=C5=99emysl=20Janouch?=
Date: Sat, 1 Oct 2016 04:36:59 +0200
Subject: [PATCH] Add config_read_from_file()
---
liberty.c | 21 +++++++++++++++++++++
1 file changed, 21 insertions(+)
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