changeset 21155:d085641ec21d

lib-settings: Add settings_parse_keyvalue()
author Timo Sirainen <timo.sirainen@dovecot.fi>
date Tue, 15 Nov 2016 00:36:57 +0100
parents 7e8988f6b942
children 5bcd6014d598
files src/lib-settings/settings-parser.c src/lib-settings/settings-parser.h
diffstat 2 files changed, 8 insertions(+), 8 deletions(-) [+]
line wrap: on
line diff
--- a/src/lib-settings/settings-parser.c	Mon Nov 14 23:32:05 2016 +0100
+++ b/src/lib-settings/settings-parser.c	Tue Nov 15 00:36:57 2016 +0100
@@ -68,9 +68,6 @@
 HASH_TABLE_DEFINE_TYPE(setting_link, struct setting_link *,
 		       struct setting_link *);
 
-static int settings_parse_keyvalue(struct setting_parser_context *ctx,
-				   const char *key, const char *value);
-
 static void
 setting_parser_copy_defaults(struct setting_parser_context *ctx, 
 			     const struct setting_parser_info *info,
@@ -792,13 +789,16 @@
 	array_append(link->array, &vvalue, 1);
 }
 
-static int settings_parse_keyvalue(struct setting_parser_context *ctx,
-				   const char *key, const char *value)
+int settings_parse_keyvalue(struct setting_parser_context *ctx,
+			    const char *key, const char *value)
 {
 	const struct setting_define *def;
 	struct setting_link *link;
 	unsigned int n = 0;
 
+	ctx->error = NULL;
+	ctx->prev_info = NULL;
+
 	if (!settings_find_key_nth(ctx, key, &n, &def, &link)) {
 		ctx->error = p_strconcat(ctx->parser_pool,
 					 "Unknown setting: ", key, NULL);
@@ -886,9 +886,6 @@
 	const char *key, *value;
 	int ret;
 
-	ctx->error = NULL;
-	ctx->prev_info = NULL;
-
 	key = line;
 	value = strchr(line, '=');
 	if (value == NULL) {
--- a/src/lib-settings/settings-parser.h	Mon Nov 14 23:32:05 2016 +0100
+++ b/src/lib-settings/settings-parser.h	Tue Nov 15 00:36:57 2016 +0100
@@ -146,6 +146,9 @@
 			       const char *key);
 /* Parse a single line. Returns 1 if OK, 0 if key is unknown, -1 if error. */
 int settings_parse_line(struct setting_parser_context *ctx, const char *line);
+/* Parse key/value pair. Returns 1 if OK, 0 if key is unknown, -1 if error. */
+int settings_parse_keyvalue(struct setting_parser_context *ctx,
+			    const char *key, const char *value);
 /* Parse data already read in input stream. */
 int settings_parse_stream(struct setting_parser_context *ctx,
 			  struct istream *input);