From 952cf985dca6a97ee662f3b189788089abd2ef57 Mon Sep 17 00:00:00 2001 From: Přemysl Janouch Date: Sat, 1 Oct 2016 04:36:59 +0200 Subject: 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 -- cgit v1.2.3-70-g09d2