diff src/lib-settings/settings-parser.c @ 10704:c26002b81f57 HEAD

config: $setting as value returns the setting's current value.
author Timo Sirainen <tss@iki.fi>
date Sat, 13 Feb 2010 08:07:31 +0200
parents 4c9c9111e361
children 07059f9aead8
line wrap: on
line diff
--- a/src/lib-settings/settings-parser.c	Sat Feb 13 07:25:56 2010 +0200
+++ b/src/lib-settings/settings-parser.c	Sat Feb 13 08:07:31 2010 +0200
@@ -692,6 +692,22 @@
 	return settings_find_key(ctx, key, &def, &link);
 }
 
+const void *
+settings_parse_get_value(struct setting_parser_context *ctx,
+			 const char *key, enum setting_type *type_r)
+{
+	const struct setting_define *def;
+	struct setting_link *link;
+
+	if (!settings_find_key(ctx, key, &def, &link))
+		return NULL;
+	if (link->set_struct == NULL)
+		return NULL;
+
+	*type_r = def->type;
+	return STRUCT_MEMBER_P(link->set_struct, def->offset);
+}
+
 int settings_parse_line(struct setting_parser_context *ctx, const char *line)
 {
 	const char *key, *value;