diff -Nurp linux-2.6.22.noarch.orig/scripts/kconfig/conf.c linux-2.6.22.noarch/scripts/kconfig/conf.c --- linux-2.6.22.noarch.orig/scripts/kconfig/conf.c 2007-10-11 20:51:33.000000000 +0200 +++ linux-2.6.22.noarch/scripts/kconfig/conf.c 2007-10-11 20:56:30.000000000 +0200 @@ -21,6 +21,8 @@ enum { ask_all, ask_new, ask_silent, + dont_ask, + dont_ask_dont_tell, set_default, set_yes, set_mod, @@ -37,6 +39,8 @@ static struct menu *rootEntry; static char nohelp_text[] = N_("Sorry, no help available for this option yet.\n"); +static int return_value = 0; + static void strip(char *str) { char *p = str; @@ -103,6 +107,13 @@ static int conf_askvalue(struct symbol * fflush(stdout); fgets(line, 128, stdin); return 1; + case dont_ask: + if (!sym_has_value(sym)) { + fprintf(stderr, "CONFIG_%s\n", sym->name); + return_value++; + } + case dont_ask_dont_tell: + return 1; case set_default: printf("%s\n", def); return 1; @@ -349,6 +360,11 @@ static int conf_choice(struct menu *menu printf("?"); printf("]: "); switch (input_mode) { + case dont_ask: + case dont_ask_dont_tell: + cnt = def; + printf("%d\n", cnt); + break; case ask_new: case ask_silent: if (!is_new) { @@ -485,6 +501,10 @@ static void check_conf(struct menu *menu if (!conf_cnt++) printf(_("*\n* Restart config...\n*\n")); rootEntry = menu_get_parent_menu(menu); + if (input_mode == dont_ask + || input_mode == dont_ask_dont_tell) + fprintf(stderr,"CONFIG_%s\n",sym->name); + else conf(rootEntry); } } @@ -504,6 +524,12 @@ int main(int ac, char **av) case 'o': input_mode = ask_new; break; + case 'b': + input_mode = dont_ask; + break; + case 'B': + input_mode = dont_ask_dont_tell; + break; case 's': input_mode = ask_silent; valid_stdin = isatty(0) && isatty(1) && isatty(2); @@ -570,6 +596,8 @@ int main(int ac, char **av) } case ask_all: case ask_new: + case dont_ask: + case dont_ask_dont_tell: conf_read(NULL); break; case set_no: @@ -616,7 +644,8 @@ int main(int ac, char **av) do { conf_cnt = 0; check_conf(&rootmenu); - } while (conf_cnt); + } while (conf_cnt && (input_mode != dont_ask + && input_mode != dont_ask_dont_tell)); if (conf_write(NULL)) { fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); return 1; @@ -627,5 +656,5 @@ skip_check: return 1; } - return 0; + return return_value; } diff -Nurp linux-2.6.22.noarch.orig/scripts/kconfig/Makefile linux-2.6.22.noarch/scripts/kconfig/Makefile --- linux-2.6.22.noarch.orig/scripts/kconfig/Makefile 2007-07-09 01:32:17.000000000 +0200 +++ linux-2.6.22.noarch/scripts/kconfig/Makefile 2007-10-11 20:52:11.000000000 +0200 @@ -22,6 +22,11 @@ oldconfig: $(obj)/conf silentoldconfig: $(obj)/conf $< -s arch/$(ARCH)/Kconfig +nonint_oldconfig: $(obj)/conf + $< -b arch/$(ARCH)/Kconfig +loose_nonint_oldconfig: $(obj)/conf + $< -B arch/$(ARCH)/Kconfig + update-po-config: $(obj)/kxgettext xgettext --default-domain=linux \ --add-comments --keyword=_ --keyword=N_ \