Commit 801690ca authored by Sam Ravnborg's avatar Sam Ravnborg Committed by Michal Marek

kconfig: fix savedefconfig for tristate choices

savedefconfig failed to save choice symbols equal to 'y'
for tristate choices.
This resulted in this value being lost.

In particular is fixes an issue where

	make ARCH=avr32 atngw100_defconfig
	make ARCH=avr32 savedefconfig
	cp defconfig arch/avr32/configs/atngw100_defconfig
	make ARCH=avr32 atngw100_defconfig
	diff -u .config .config.old

failed to produce an identical .config.
Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
Signed-off-by: default avatarMichal Marek <mmarek@suse.cz>
parent 7a996d3a
...@@ -497,7 +497,7 @@ int conf_write_defconfig(const char *filename) ...@@ -497,7 +497,7 @@ int conf_write_defconfig(const char *filename)
/* /*
* If symbol is a choice value and equals to the * If symbol is a choice value and equals to the
* default for a choice - skip. * default for a choice - skip.
* But only if value equal to "y". * But only if value is bool and equal to "y" .
*/ */
if (sym_is_choice_value(sym)) { if (sym_is_choice_value(sym)) {
struct symbol *cs; struct symbol *cs;
...@@ -506,9 +506,8 @@ int conf_write_defconfig(const char *filename) ...@@ -506,9 +506,8 @@ int conf_write_defconfig(const char *filename)
cs = prop_get_symbol(sym_get_choice_prop(sym)); cs = prop_get_symbol(sym_get_choice_prop(sym));
ds = sym_choice_default(cs); ds = sym_choice_default(cs);
if (sym == ds) { if (sym == ds) {
if ((sym->type == S_BOOLEAN || if ((sym->type == S_BOOLEAN) &&
sym->type == S_TRISTATE) && sym_get_tristate_value(sym) == yes)
sym_get_tristate_value(sym) == yes)
goto next_menu; goto next_menu;
} }
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment