-rw-r--r-- | scripts/kconfig/conf.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c index 74c94c2..1602d5f 100644 --- a/scripts/kconfig/conf.c +++ b/scripts/kconfig/conf.c @@ -106,24 +106,25 @@ static void conf_askvalue(struct symbol *sym, const char *def) case ask_silent: if (sym_has_value(sym)) { printf("%s\n", def); return; } if (!valid_stdin && input_mode == ask_silent) { printf("aborted!\n\n"); printf("Console input/output is redirected. "); printf("Run 'make oldconfig' to update configuration.\n\n"); exit(1); } case ask_all: + fflush(stdout); fgets(line, 128, stdin); return; case set_default: printf("%s\n", def); return; default: break; } switch (type) { case S_INT: case S_HEX: @@ -333,47 +334,49 @@ static int conf_choice(struct menu *menu) } printo(NULL); if (def_menu) printf("[%s] ", menu_get_prompt(def_menu)); else { printf("\n"); return 1; } switch (input_mode) { case ask_new: case ask_silent: case ask_all: + if (is_new) + sym->flags |= SYMBOL_NEW; conf_askvalue(sym, menu_get_prompt(def_menu)); strip(line); break; default: line[0] = 0; printf("\n"); } if (line[0] == '?' && !line[1]) { help = nohelp_text; if (menu->sym->help) help = menu->sym->help; printf("\n%s\n", help); continue; } if (line[0]) { - len = strlen(line) - 1; + len = strlen(line); line[len] = 0; def_menu = NULL; for (cmenu = menu->list; cmenu; cmenu = cmenu->next) { if (!cmenu->sym || !menu_is_visible(cmenu)) continue; - if (!strncmp(line, menu_get_prompt(cmenu), len)) { + if (!strncasecmp(line, menu_get_prompt(cmenu), len)) { def_menu = cmenu; break; } } } if (def_menu) { sym_set_choice_value(sym, def_menu->sym); if (def_menu->list) { indent += 2; conf(def_menu->list); indent -= 2; } |