check_conf() traverses the menu tree, but it is completely no-op for olddefconfig because the following if-else block does nothing.
if (input_mode == listnewconfig) { ... } else if (input_mode != olddefconfig) { ... } As the help message says, olddefconfig automatically sets new symbols to their default value. There is no room for manual intervention. So, calling check_conf() for olddefconfig is odd in the first place. Rather, olddefconfig belongs to the group of alldefconfig and defconfig. Signed-off-by: Masahiro Yamada <yamada.masah...@socionext.com> --- scripts/kconfig/conf.c | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c index 866369f..52cbe5d 100644 --- a/scripts/kconfig/conf.c +++ b/scripts/kconfig/conf.c @@ -434,7 +434,7 @@ static void check_conf(struct menu *menu) if (sym->name && !sym_is_choice_value(sym)) { printf("%s%s\n", CONFIG_, sym->name); } - } else if (input_mode != olddefconfig) { + } else { if (!conf_cnt++) printf(_("*\n* Restart config...\n*\n")); rootEntry = menu_get_parent_menu(menu); @@ -674,15 +674,15 @@ int main(int ac, char **av) /* fall through */ case oldconfig: case listnewconfig: - case olddefconfig: case silentoldconfig: /* Update until a loop caused no more changes */ do { conf_cnt = 0; check_conf(&rootmenu); - } while (conf_cnt && - (input_mode != listnewconfig && - input_mode != olddefconfig)); + } while (conf_cnt && input_mode != listnewconfig); + break; + case olddefconfig: + default: break; } -- 2.7.4