struct config_parsed *new_config,
struct event *event, const char **error_r);
+static inline const char *
+set_str_expanded(const union config_module_parser_setting *value)
+{
+ return value->str;
+}
+
/* Apply a key-value setting. $VARIABLE expansion is not done for the value. */
int config_apply_key_value(struct config_parser_context *ctx, const char *key,
const char *value, const char **full_key_r) ATTR_NULL(4);
if (l->change_counters != NULL &&
l->change_counters[config_key->define_idx] != 0) {
- str_append(str, l->settings[config_key->define_idx].str);
+ str_append(str, set_str_expanded(&l->settings[config_key->define_idx]));
return TRUE;
}
if (l2 != NULL && l2->change_counters != NULL &&
l2->change_counters[config_key->define_idx] != 0) {
- str_append(str, l2->settings[config_key->define_idx].str);
+ str_append(str, set_str_expanded(&l2->settings[config_key->define_idx]));
return TRUE;
}
break;
}
default: {
- const char *value = p->settings[i].str;
+ const char *value = set_str_expanded(&p->settings[i]);
if (p->info->defines[i].type != SET_STR_NOVARS &&
p->info->defines[i].type != SET_FILE &&
- !setting_value_can_check(p->settings[i].str,
+ !setting_value_can_check(set_str_expanded(&p->settings[i]),
expand_values)) {
/* We don't know what the variables would
expand to. */
i_assert(module_parser->info->defines[key_idx].type != SET_STRLIST &&
module_parser->info->defines[key_idx].type != SET_BOOLLIST &&
module_parser->info->defines[key_idx].type != SET_FILTER_ARRAY);
- return module_parser->settings[key_idx].str;
+ return set_str_expanded(&module_parser->settings[key_idx]);
}
}
return default_value;
i_assert(def->type != SET_STRLIST && def->type != SET_BOOLLIST &&
def->type != SET_FILTER_ARRAY);
if (l[info_idx].change_counters[key_idx] != 0)
- return l[info_idx].settings[key_idx].str;
+ return set_str_expanded(&l[info_idx].settings[key_idx]);
if (ldef[info_idx].change_counters[key_idx] != 0)
- return ldef[info_idx].settings[key_idx].str;
+ return set_str_expanded(&ldef[info_idx].settings[key_idx]);
const void *value = CONST_PTR_OFFSET(l[info_idx].info->defaults, def->offset);
string_t *str = t_str_new(64);
if (!dump_default &&
strcmp(get_default_value(old_default, info, def),
- module_parser->settings[define_idx].str) == 0) {
+ set_str_expanded(&module_parser->settings[define_idx])) == 0) {
/* Explicitly set setting value wasn't
actually changed from its default. */
break;
CONFIG_PARSER_CHANGE_DEFAULTS) {
/* explicitly set */
str_append(ctx->value,
- module_parser->settings[define_idx].str);
+ set_str_expanded(&module_parser->settings[define_idx]));
} else if (module_parser->change_counters[define_idx] ==
CONFIG_PARSER_CHANGE_DEFAULTS && !default_changed) {
/* default not changed by old version checks */
str_append(ctx->value,
- module_parser->settings[define_idx].str);
+ set_str_expanded(&module_parser->settings[define_idx]));
} else if (module_parser->change_counters[define_idx] ==
CONFIG_PARSER_CHANGE_GROUP) {
str_append(ctx->value,
- module_parser->settings[define_idx].str);
+ set_str_expanded(&module_parser->settings[define_idx]));
} else {
str_append(ctx->value,
get_default_value(old_default, info, def));