--- ./scripts/kconfig/conf.c.nonint 2006-09-20 07:42:06.000000000 +0400 +++ ./scripts/kconfig/conf.c 2006-10-06 15:10:03.000000000 +0400 @@ -21,6 +21,7 @@ enum { ask_all, ask_new, ask_silent, + dont_ask, set_default, set_yes, set_mod, @@ -37,6 +38,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 +106,12 @@ static void conf_askvalue(struct symbol } switch (input_mode) { + case dont_ask: + if (!sym_has_value(sym)) { + fprintf(stderr,"CONFIG_%s\n",sym->name); + return_value++; + } + return 0; case set_no: case set_mod: case set_yes: @@ -346,6 +355,10 @@ static int conf_choice(struct menu *menu printf("?"); printf("]: "); switch (input_mode) { + case dont_ask: + cnt = def; + printf("%d\n", cnt); + break; case ask_new: case ask_silent: if (!is_new) { @@ -482,7 +495,10 @@ static void check_conf(struct menu *menu if (!conf_cnt++) printf(_("*\n* Restart config...\n*\n")); rootEntry = menu_get_parent_menu(menu); - conf(rootEntry); + if (input_mode == dont_ask) + fprintf(stderr,"CONFIG_%s\n",sym->name); + else + conf(rootEntry); } } @@ -501,11 +517,14 @@ int main(int ac, char **av) bindtextdomain(PACKAGE, LOCALEDIR); textdomain(PACKAGE); - while ((opt = getopt(ac, av, "osdD:nmyrh")) != -1) { + while ((opt = getopt(ac, av, "osdD:nmyrhb")) != -1) { switch (opt) { case 'o': input_mode = ask_new; break; + case 'b': + input_mode = dont_ask; + break; case 's': input_mode = ask_silent; valid_stdin = isatty(0) && isatty(1) && isatty(2); @@ -566,6 +585,7 @@ int main(int ac, char **av) } case ask_all: case ask_new: + case dont_ask: conf_read(NULL); break; case set_no: @@ -612,7 +632,7 @@ int main(int ac, char **av) do { conf_cnt = 0; check_conf(&rootmenu); - } while (conf_cnt); + } while ((conf_cnt) && (input_mode != dont_ask)); if (conf_write(NULL)) { fprintf(stderr, _("\n*** Error during writing of the kernel configuration.\n\n")); return 1; @@ -623,5 +643,5 @@ skip_check: return 1; } - return 0; + return return_value; } --- ./scripts/kconfig/Makefile.nonint 2006-09-20 07:42:06.000000000 +0400 +++ ./scripts/kconfig/Makefile 2006-10-06 15:08:31.000000000 +0400 @@ -42,6 +42,9 @@ update-po-config: $(obj)/kxgettext $(Q)rm -f arch/um/Kconfig_arch $(Q)rm -f scripts/kconfig/linux_*.pot scripts/kconfig/config.pot +nonint_oldconfig: $(obj)/conf + $< -b $(Kconfig) + PHONY += randconfig allyesconfig allnoconfig allmodconfig defconfig randconfig: $(obj)/conf