Mercurial > dovecot > core-2.2
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);