return TRUE;
}
-struct setting_parser_context *
-config_module_parser_get_set_parser(const struct config_module_parser *p,
- pool_t pool)
+void config_fill_set_parser(struct setting_parser_context *parser,
+ const struct config_module_parser *p)
{
- struct setting_parser_context *parser =
- settings_parser_init(pool, p->info, settings_parser_flags);
for (unsigned int i = 0; p->info->defines[i].key != NULL; i++) {
if (p->change_counters[i] == 0)
continue;
}
}
}
- return parser;
}
static void
continue;
p_clear(tmp_pool);
struct setting_parser_context *tmp_parser =
- config_module_parser_get_set_parser(p, tmp_pool);
+ settings_parser_init(tmp_pool, p->info,
+ settings_parser_flags);
+ config_fill_set_parser(tmp_parser, p);
T_BEGIN {
ok = settings_parser_check(tmp_parser, tmp_pool,
event, &error);
#define CONFIG_PARSER_CHANGE_EXPLICIT 3
struct config_parsed;
+struct setting_parser_context;
enum config_parse_flags {
CONFIG_PARSE_FLAG_EXPAND_VALUES = BIT(0),
/* Returns all module_parsers. The array is terminated with info=NULL. */
const struct config_module_parser *
config_parsed_get_module_parsers(struct config_parsed *config);
-/* Return a new setting parser context for the given module parser. */
-struct setting_parser_context *
-config_module_parser_get_set_parser(const struct config_module_parser *p,
- pool_t pool);
+/* Fill settings parser with settings from the given module parser. */
+void config_fill_set_parser(struct setting_parser_context *parser,
+ const struct config_module_parser *p);
/* Returns the value for a specified setting. The setting must be found and it
must be a string, or the function panics. */
const char *
/* get the parsed output */
pool_t pool = pool_alloconly_create("test settings", 128);
+ const struct config_module_parser *p =
+ config_parsed_get_module_parsers(config);
struct setting_parser_context *set_parser =
- config_module_parser_get_set_parser(config_parsed_get_module_parsers(config),
- pool);
+ settings_parser_init(pool, p->info, 0);
+ config_fill_set_parser(set_parser, p);
const struct test_settings *set = settings_parser_get_set(set_parser);
test_assert_strcmp(set->key, "value");
test_assert_strcmp(set->key2, "\\$escape \\escape \\\"escape\\\"");
&config, &error) == 1);
p_clear(pool);
- set_parser = config_module_parser_get_set_parser(
- config_parsed_get_module_parsers(config), pool);
+ p = config_parsed_get_module_parsers(config);
+ set_parser = settings_parser_init(pool, p->info, 0);
+ config_fill_set_parser(set_parser, p);
set = settings_parser_get_set(set_parser);
test_assert_strcmp(set->key, "value");