}
dump_default = TRUE;
break;
+ case CONFIG_DUMP_SCOPE_SET_AND_DEFAULT_AND_GROUP_OVERRIDES:
+ if (change_value == 0) {
+ /* setting is completely unchanged */
+ continue;
+ }
+ dump_default = TRUE;
+ break;
case CONFIG_DUMP_SCOPE_CHANGED:
if (change_value < CONFIG_PARSER_CHANGE_EXPLICIT) {
/* setting is unchanged in config file */
/* Same as CONFIG_DUMP_SCOPE_SET, but also dump any defaults overridden
via strings (instead of the defaults struct). */
CONFIG_DUMP_SCOPE_SET_AND_DEFAULT_OVERRIDES,
+ /* Same as CONFIG_DUMP_SCOPE_SET_AND_DEFAULT_OVERRIDES, but also expand
+ group settings. */
+ CONFIG_DUMP_SCOPE_SET_AND_DEFAULT_AND_GROUP_OVERRIDES,
/* Dump only settings that differ from defaults */
CONFIG_DUMP_SCOPE_CHANGED
};
strip_prefix, strip_prefix2);
bool sub_list_prefix_sent = ctx->list_prefix_sent;
- if (set_name_filter == NULL) {
+ if (scope != CONFIG_DUMP_SCOPE_SET_AND_DEFAULT_AND_GROUP_OVERRIDES) {
if (config_dump_human_include_group(filter_parser, output,
sub_list_prefix_sent ? NULL :
list_prefix, sub_indent))
t_strsplit(setting_name_filter, "/");
if (scope == CONFIG_DUMP_SCOPE_CHANGED)
scope = CONFIG_DUMP_SCOPE_SET;
- else if (scope != CONFIG_DUMP_SCOPE_SET)
+ else if (scope == CONFIG_DUMP_SCOPE_SET)
+ ;
+ else if (setting_name_filter == NULL)
scope = CONFIG_DUMP_SCOPE_SET_AND_DEFAULT_OVERRIDES;
+ else
+ scope = CONFIG_DUMP_SCOPE_SET_AND_DEFAULT_AND_GROUP_OVERRIDES;
config_dump_human_filter_path(scope, set_filter_path,
filter_parser->children_head, output, 0,
list_prefix, &list_prefix_sent,