diff options
Diffstat (limited to 'package/config/confdata.c')
-rw-r--r-- | package/config/confdata.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/package/config/confdata.c b/package/config/confdata.c index 1b1fdb7b9..6455dc2fb 100644 --- a/package/config/confdata.c +++ b/package/config/confdata.c @@ -492,7 +492,9 @@ int conf_write_defconfig(const char *filename) /* * If symbol is a choice value and equals to the * default for a choice - skip. - * But only if value is bool and equal to "y" . + * But only if value is bool and equal to "y" and + * choice is not "optional". + * (If choice is "optional" then all values can be "n") */ if (sym_is_choice_value(sym)) { struct symbol *cs; @@ -500,7 +502,7 @@ int conf_write_defconfig(const char *filename) cs = prop_get_symbol(sym_get_choice_prop(sym)); ds = sym_choice_default(cs); - if (sym == ds) { + if (!sym_is_optional(cs) && sym == ds) { if ((sym->type == S_BOOLEAN) && sym_get_tristate_value(sym) == yes) goto next_menu; |