-rw-r--r-- | scripts/kconfig/mconf.c | 56 |
1 files changed, 39 insertions, 17 deletions
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c index 6d82718..b9cf25f 100644 --- a/scripts/kconfig/mconf.c +++ b/scripts/kconfig/mconf.c @@ -44,38 +44,38 @@ inputbox_instructions_hex[] = "Use the <TAB> key to move from the input field to the buttons below it.", inputbox_instructions_string[] = "Please enter a string value. " "Use the <TAB> key to move from the input field to the buttons below it.", setmod_text[] = "This feature depends on another which has been configured as a module.\n" "As a result, this feature will be built as a module.", nohelp_text[] = - "There is no help available for this kernel option.\n", + "There is no help available for this option.\n", load_config_text[] = "Enter the name of the configuration file you wish to load. " "Accept the name shown to restore the configuration you " "last retrieved. Leave blank to abort.", load_config_help[] = "\n" - "For various reasons, one may wish to keep several different kernel\n" + "For various reasons, one may wish to keep several different \n" "configurations available on a single machine.\n" "\n" "If you have saved a previous configuration in a file other than the\n" - "kernel's default, entering the name of the file here will allow you\n" + "default, entering the name of the file here will allow you\n" "to modify that configuration.\n" "\n" "If you are uncertain, then you have probably never used alternate\n" "configuration files. You should therefor leave this blank to abort.\n", save_config_text[] = "Enter a filename to which this configuration should be saved " "as an alternate. Leave blank to abort.", save_config_help[] = "\n" - "For various reasons, one may wish to keep different kernel\n" + "For various reasons, one may wish to keep different\n" "configurations available on a single machine.\n" "\n" "Entering a file name here will allow you to later retrieve, modify\n" "and use the current configuration as an alternate to whatever\n" "configuration options you have selected at that time.\n" "\n" "If you are uncertain what all this means then you should probably\n" "leave this blank.\n" @@ -142,22 +142,27 @@ static void init_wsize(void) } rows -= 4; cols -= 5; } static void cprint_init(void) { + char *env = getenv("LXDIALOG"); bufptr = buf; argptr = args; memset(args, 0, sizeof(args)); indent = 0; child_count = 0; + if(env != NULL) { + cprint(env); + } else { cprint("./scripts/lxdialog/lxdialog"); + } cprint("--backtitle"); cprint(menu_backtitle); } static int cprint1(const char *fmt, ...) { va_list ap; int res; @@ -297,21 +302,18 @@ static void build_conf(struct menu *menu) case P_MENU: child_count++; cprint("m%p", menu); if (single_menu_mode) { cprint1("%s%*c%s", menu->data ? "-->" : "++>", indent + 1, ' ', prompt); - } else { - if (menu->parent != &rootmenu) - cprint1(" %*c", indent + 1, ' '); - cprint1("%s --->", prompt); - } + } else + cprint1(" %*c%s --->", indent + 1, ' ', prompt); cprint_done(); if (single_menu_mode && menu->data) goto conf_childs; return; default: if (prompt) { child_count++; @@ -368,50 +370,68 @@ static void build_conf(struct menu *menu) indent -= 2; } } else cprint_done(); return; } cprint_done(); } else { + if (menu == current_menu) { + cprint(":%p", menu); + cprint("---%*c%s", indent + 1, ' ', menu_get_prompt(menu)); + goto conf_childs; + } child_count++; val = sym_get_tristate_value(sym); if (sym_is_choice_value(sym) && val == yes) { cprint(":%p", menu); cprint1(" "); } else { switch (type) { case S_BOOLEAN: cprint("t%p", menu); + if (sym_is_changable(sym)) cprint1("[%c]", val == no ? ' ' : '*'); + else + cprint1("---"); break; case S_TRISTATE: cprint("t%p", menu); switch (val) { case yes: ch = '*'; break; case mod: ch = 'M'; break; default: ch = ' '; break; } + if (sym_is_changable(sym)) cprint1("<%c>", ch); + else + cprint1("---"); break; default: cprint("s%p", menu); tmp = cprint1("(%s)", sym_get_string_value(sym)); tmp = indent - tmp + 4; if (tmp < 0) tmp = 0; cprint1("%*c%s%s", tmp, ' ', menu_get_prompt(menu), - sym_has_value(sym) ? "" : " (NEW)"); + (sym_has_value(sym) || !sym_is_changable(sym)) ? + "" : " (NEW)"); cprint_done(); goto conf_childs; } } cprint1("%*c%s%s", indent + 1, ' ', menu_get_prompt(menu), - sym_has_value(sym) ? "" : " (NEW)"); + (sym_has_value(sym) || !sym_is_changable(sym)) ? + "" : " (NEW)"); + if (menu->prompt->type == P_MENU) { + cprint1(" --->"); + cprint_done(); + return; + } cprint_done(); } conf_childs: indent += doint; for (child = menu->list; child; child = child->next) build_conf(child); indent -= doint; @@ -479,16 +499,18 @@ static void conf(struct menu *menu) if (single_menu_mode) submenu->data = (void *) !submenu->data; else conf(submenu); break; case 't': if (sym_is_choice(sym) && sym_get_tristate_value(sym) == yes) conf_choice(submenu); + else if (submenu->prompt->type == P_MENU) + conf(submenu); break; case 's': conf_string(submenu); break; case 'L': conf_load(); break; case 'S': @@ -739,18 +761,17 @@ int main(int ac, char **av) char *mode; int stat; conf_parse(av[1]); conf_read(NULL); sym = sym_lookup("KERNELRELEASE", 0); sym_calc_value(sym); - sprintf(menu_backtitle, "Opie %s Configuration", - sym_get_string_value(sym)); + sprintf(menu_backtitle, "Build Configuration"); mode = getenv("MENUCONFIG_MODE"); if (mode) { if (!strcasecmp(mode, "single_menu")) single_menu_mode = 1; } tcgetattr(1, &ios_org); @@ -765,16 +786,17 @@ int main(int ac, char **av) cprint("5"); cprint("60"); stat = exec_conf(); } while (stat < 0); if (stat == 0) { conf_write(NULL); printf("\n\n" - "*** End of Opie configuration.\n" - "*** Check the top-level Makefile for additional configuration.\n" - "*** Next, you may run 'make'.\n\n"); + "*** End of configuration.\n" + "\n\n"); } else - printf("\n\nYour Opie configuration changes were NOT saved.\n\n"); + printf("\n\n" + "Your configuration changes were NOT saved." + "\n\n"); return 0; } |