|
|
@ -35,16 +35,16 @@ static const char mconf_readme[] = N_(
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
"To change any of these features, highlight it with the cursor\n"
|
|
|
|
"To change any of these features, highlight it with the cursor\n"
|
|
|
|
"keys and press <Y> to build it in, <M> to make it a module or\n"
|
|
|
|
"keys and press <Y> to build it in, <M> to make it a module or\n"
|
|
|
|
"<N> to removed it. You may also press the <Space Bar> to cycle\n"
|
|
|
|
"<N> to remove it. You may also press the <Space Bar> to cycle\n"
|
|
|
|
"through the available options (ie. Y->N->M->Y).\n"
|
|
|
|
"through the available options (i.e. Y->N->M->Y).\n"
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
"Some additional keyboard hints:\n"
|
|
|
|
"Some additional keyboard hints:\n"
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
"Menus\n"
|
|
|
|
"Menus\n"
|
|
|
|
"----------\n"
|
|
|
|
"----------\n"
|
|
|
|
"o Use the Up/Down arrow keys (cursor keys) to highlight the item\n"
|
|
|
|
"o Use the Up/Down arrow keys (cursor keys) to highlight the item you\n"
|
|
|
|
" you wish to change or submenu wish to select and press <Enter>.\n"
|
|
|
|
" wish to change or the submenu you wish to select and press <Enter>.\n"
|
|
|
|
" Submenus are designated by \"--->\".\n"
|
|
|
|
" Submenus are designated by \"--->\", empty ones by \"----\".\n"
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
" Shortcut: Press the option's highlighted letter (hotkey).\n"
|
|
|
|
" Shortcut: Press the option's highlighted letter (hotkey).\n"
|
|
|
|
" Pressing a hotkey more than once will sequence\n"
|
|
|
|
" Pressing a hotkey more than once will sequence\n"
|
|
|
@ -61,7 +61,7 @@ static const char mconf_readme[] = N_(
|
|
|
|
" there is a delayed response which you may find annoying.\n"
|
|
|
|
" there is a delayed response which you may find annoying.\n"
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
" Also, the <TAB> and cursor keys will cycle between <Select>,\n"
|
|
|
|
" Also, the <TAB> and cursor keys will cycle between <Select>,\n"
|
|
|
|
" <Exit> and <Help>.\n"
|
|
|
|
" <Exit>, <Help>, <Save>, and <Load>.\n"
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
"o To get help with an item, use the cursor keys to highlight <Help>\n"
|
|
|
|
"o To get help with an item, use the cursor keys to highlight <Help>\n"
|
|
|
|
" and press <ENTER>.\n"
|
|
|
|
" and press <ENTER>.\n"
|
|
|
@ -101,7 +101,7 @@ static const char mconf_readme[] = N_(
|
|
|
|
"Text Box (Help Window)\n"
|
|
|
|
"Text Box (Help Window)\n"
|
|
|
|
"--------\n"
|
|
|
|
"--------\n"
|
|
|
|
"o Use the cursor keys to scroll up/down/left/right. The VI editor\n"
|
|
|
|
"o Use the cursor keys to scroll up/down/left/right. The VI editor\n"
|
|
|
|
" keys h,j,k,l function here as do <u>, <d>, <SPACE BAR> and <B> for \n"
|
|
|
|
" keys h,j,k,l function here as do <u>, <d>, <SPACE BAR> and <B> for\n"
|
|
|
|
" those who are familiar with less and lynx.\n"
|
|
|
|
" those who are familiar with less and lynx.\n"
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
"o Press <E>, <X>, <q>, <Enter> or <Esc><Esc> to exit.\n"
|
|
|
|
"o Press <E>, <X>, <q>, <Enter> or <Esc><Esc> to exit.\n"
|
|
|
@ -113,23 +113,21 @@ static const char mconf_readme[] = N_(
|
|
|
|
"those who, for various reasons, find it necessary to switch\n"
|
|
|
|
"those who, for various reasons, find it necessary to switch\n"
|
|
|
|
"between different configurations.\n"
|
|
|
|
"between different configurations.\n"
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
"At the end of the main menu you will find two options. One is\n"
|
|
|
|
"The <Save> button will let you save the current configuration to\n"
|
|
|
|
"for saving the current configuration to a file of your choosing.\n"
|
|
|
|
"a file of your choosing. Use the <Load> button to load a previously\n"
|
|
|
|
"The other option is for loading a previously saved alternate\n"
|
|
|
|
"saved alternate configuration.\n"
|
|
|
|
"configuration.\n"
|
|
|
|
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
"Even if you don't use alternate configuration files, but you\n"
|
|
|
|
"Even if you don't use alternate configuration files, but you find\n"
|
|
|
|
"find during a Menuconfig session that you have completely messed\n"
|
|
|
|
"during a Menuconfig session that you have completely messed up your\n"
|
|
|
|
"up your settings, you may use the \"Load Alternate...\" option to\n"
|
|
|
|
"settings, you may use the <Load> button to restore your previously\n"
|
|
|
|
"restore your previously saved settings from \".config\" without\n"
|
|
|
|
"saved settings from \".config\" without restarting Menuconfig.\n"
|
|
|
|
"restarting Menuconfig.\n"
|
|
|
|
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
"Other information\n"
|
|
|
|
"Other information\n"
|
|
|
|
"-----------------\n"
|
|
|
|
"-----------------\n"
|
|
|
|
"If you use Menuconfig in an XTERM window make sure you have your\n"
|
|
|
|
"If you use Menuconfig in an XTERM window, make sure you have your\n"
|
|
|
|
"$TERM variable set to point to a xterm definition which supports color.\n"
|
|
|
|
"$TERM variable set to point to an xterm definition which supports\n"
|
|
|
|
"Otherwise, Menuconfig will look rather bad. Menuconfig will not\n"
|
|
|
|
"color. Otherwise, Menuconfig will look rather bad. Menuconfig will\n"
|
|
|
|
"display correctly in a RXVT window because rxvt displays only one\n"
|
|
|
|
"not display correctly in an RXVT window because rxvt displays only one\n"
|
|
|
|
"intensity of color, bright.\n"
|
|
|
|
"intensity of color, bright.\n"
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
"Menuconfig will display larger menus on screens or xterms which are\n"
|
|
|
|
"Menuconfig will display larger menus on screens or xterms which are\n"
|
|
|
@ -144,8 +142,8 @@ static const char mconf_readme[] = N_(
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
"Optional personality available\n"
|
|
|
|
"Optional personality available\n"
|
|
|
|
"------------------------------\n"
|
|
|
|
"------------------------------\n"
|
|
|
|
"If you prefer to have all of the options listed in a single menu, rather\n"
|
|
|
|
"If you prefer to have all of the options listed in a single menu,\n"
|
|
|
|
"than the default multimenu hierarchy, run the menuconfig with\n"
|
|
|
|
"rather than the default multimenu hierarchy, run the menuconfig with\n"
|
|
|
|
"MENUCONFIG_MODE environment variable set to single_menu. Example:\n"
|
|
|
|
"MENUCONFIG_MODE environment variable set to single_menu. Example:\n"
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
"make MENUCONFIG_MODE=single_menu menuconfig\n"
|
|
|
|
"make MENUCONFIG_MODE=single_menu menuconfig\n"
|
|
|
@ -168,11 +166,11 @@ static const char mconf_readme[] = N_(
|
|
|
|
" mono => selects colors suitable for monochrome displays\n"
|
|
|
|
" mono => selects colors suitable for monochrome displays\n"
|
|
|
|
" blackbg => selects a color scheme with black background\n"
|
|
|
|
" blackbg => selects a color scheme with black background\n"
|
|
|
|
" classic => theme with blue background. The classic look\n"
|
|
|
|
" classic => theme with blue background. The classic look\n"
|
|
|
|
" bluetitle => a LCD friendly version of classic. (default)\n"
|
|
|
|
" bluetitle => an LCD friendly version of classic. (default)\n"
|
|
|
|
"\n"),
|
|
|
|
"\n"),
|
|
|
|
menu_instructions[] = N_(
|
|
|
|
menu_instructions[] = N_(
|
|
|
|
"Arrow keys navigate the menu. "
|
|
|
|
"Arrow keys navigate the menu. "
|
|
|
|
"<Enter> selects submenus --->. "
|
|
|
|
"<Enter> selects submenus ---> (or empty submenus ----). "
|
|
|
|
"Highlighted letters are hotkeys. "
|
|
|
|
"Highlighted letters are hotkeys. "
|
|
|
|
"Pressing <Y> includes, <N> excludes, <M> modularizes features. "
|
|
|
|
"Pressing <Y> includes, <N> excludes, <M> modularizes features. "
|
|
|
|
"Press <Esc><Esc> to exit, <?> for Help, </> for Search. "
|
|
|
|
"Press <Esc><Esc> to exit, <?> for Help, </> for Search. "
|
|
|
@ -234,24 +232,24 @@ search_help[] = N_(
|
|
|
|
"Symbol: FOO [=m]\n"
|
|
|
|
"Symbol: FOO [=m]\n"
|
|
|
|
"Type : tristate\n"
|
|
|
|
"Type : tristate\n"
|
|
|
|
"Prompt: Foo bus is used to drive the bar HW\n"
|
|
|
|
"Prompt: Foo bus is used to drive the bar HW\n"
|
|
|
|
" Defined at drivers/pci/Kconfig:47\n"
|
|
|
|
|
|
|
|
" Depends on: X86_LOCAL_APIC && X86_IO_APIC || IA64\n"
|
|
|
|
|
|
|
|
" Location:\n"
|
|
|
|
" Location:\n"
|
|
|
|
" -> Bus options (PCI, PCMCIA, EISA, ISA)\n"
|
|
|
|
" -> Bus options (PCI, PCMCIA, EISA, ISA)\n"
|
|
|
|
" -> PCI support (PCI [=y])\n"
|
|
|
|
" -> PCI support (PCI [=y])\n"
|
|
|
|
"(1) -> PCI access mode (<choice> [=y])\n"
|
|
|
|
"(1) -> PCI access mode (<choice> [=y])\n"
|
|
|
|
|
|
|
|
" Defined at drivers/pci/Kconfig:47\n"
|
|
|
|
|
|
|
|
" Depends on: X86_LOCAL_APIC && X86_IO_APIC || IA64\n"
|
|
|
|
" Selects: LIBCRC32\n"
|
|
|
|
" Selects: LIBCRC32\n"
|
|
|
|
" Selected by: BAR\n"
|
|
|
|
" Selected by: BAR [=n]\n"
|
|
|
|
"-----------------------------------------------------------------\n"
|
|
|
|
"-----------------------------------------------------------------\n"
|
|
|
|
"o The line 'Type:' shows the type of the configuration option for\n"
|
|
|
|
"o The line 'Type:' shows the type of the configuration option for\n"
|
|
|
|
" this symbol (boolean, tristate, string, ...)\n"
|
|
|
|
" this symbol (boolean, tristate, string, ...)\n"
|
|
|
|
"o The line 'Prompt:' shows the text used in the menu structure for\n"
|
|
|
|
"o The line 'Prompt:' shows the text used in the menu structure for\n"
|
|
|
|
" this symbol\n"
|
|
|
|
" this symbol\n"
|
|
|
|
"o The 'Defined at' line tell at what file / line number the symbol\n"
|
|
|
|
"o The 'Defined at' line tells at what file / line number the symbol\n"
|
|
|
|
" is defined\n"
|
|
|
|
" is defined\n"
|
|
|
|
"o The 'Depends on:' line tell what symbols needs to be defined for\n"
|
|
|
|
"o The 'Depends on:' line tells what symbols need to be defined for\n"
|
|
|
|
" this symbol to be visible in the menu (selectable)\n"
|
|
|
|
" this symbol to be visible in the menu (selectable)\n"
|
|
|
|
"o The 'Location:' lines tell where in the menu structure this symbol\n"
|
|
|
|
"o The 'Location:' lines tells where in the menu structure this symbol\n"
|
|
|
|
" is located\n"
|
|
|
|
" is located\n"
|
|
|
|
" A location followed by a [=y] indicates that this is a\n"
|
|
|
|
" A location followed by a [=y] indicates that this is a\n"
|
|
|
|
" selectable menu item - and the current value is displayed inside\n"
|
|
|
|
" selectable menu item - and the current value is displayed inside\n"
|
|
|
@ -259,9 +257,9 @@ search_help[] = N_(
|
|
|
|
" Press the key in the (#) prefix to jump directly to that\n"
|
|
|
|
" Press the key in the (#) prefix to jump directly to that\n"
|
|
|
|
" location. You will be returned to the current search results\n"
|
|
|
|
" location. You will be returned to the current search results\n"
|
|
|
|
" after exiting this new menu.\n"
|
|
|
|
" after exiting this new menu.\n"
|
|
|
|
"o The 'Selects:' line tell what symbol will be automatically\n"
|
|
|
|
"o The 'Selects:' line tells what symbols will be automatically\n"
|
|
|
|
" selected if this symbol is selected (y or m)\n"
|
|
|
|
" selected if this symbol is selected (y or m)\n"
|
|
|
|
"o The 'Selected by' line tell what symbol has selected this symbol\n"
|
|
|
|
"o The 'Selected by' line tells what symbol has selected this symbol\n"
|
|
|
|
"\n"
|
|
|
|
"\n"
|
|
|
|
"Only relevant lines are shown.\n"
|
|
|
|
"Only relevant lines are shown.\n"
|
|
|
|
"\n\n"
|
|
|
|
"\n\n"
|
|
|
@ -297,7 +295,7 @@ static void set_config_filename(const char *config_filename)
|
|
|
|
int size;
|
|
|
|
int size;
|
|
|
|
|
|
|
|
|
|
|
|
size = snprintf(menu_backtitle, sizeof(menu_backtitle),
|
|
|
|
size = snprintf(menu_backtitle, sizeof(menu_backtitle),
|
|
|
|
"%s - %s", config_filename, rootmenu.prompt->text);
|
|
|
|
"%s - %s", config_filename, rootmenu.prompt->text);
|
|
|
|
if (size >= sizeof(menu_backtitle))
|
|
|
|
if (size >= sizeof(menu_backtitle))
|
|
|
|
menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
|
|
|
|
menu_backtitle[sizeof(menu_backtitle)-1] = '\0';
|
|
|
|
set_dialog_backtitle(menu_backtitle);
|
|
|
|
set_dialog_backtitle(menu_backtitle);
|
|
|
@ -307,6 +305,50 @@ static void set_config_filename(const char *config_filename)
|
|
|
|
filename[sizeof(filename)-1] = '\0';
|
|
|
|
filename[sizeof(filename)-1] = '\0';
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct subtitle_part {
|
|
|
|
|
|
|
|
struct list_head entries;
|
|
|
|
|
|
|
|
const char *text;
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
static LIST_HEAD(trail);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static struct subtitle_list *subtitles;
|
|
|
|
|
|
|
|
static void set_subtitle(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
struct subtitle_part *sp;
|
|
|
|
|
|
|
|
struct subtitle_list *pos, *tmp;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (pos = subtitles; pos != NULL; pos = tmp) {
|
|
|
|
|
|
|
|
tmp = pos->next;
|
|
|
|
|
|
|
|
free(pos);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
subtitles = NULL;
|
|
|
|
|
|
|
|
list_for_each_entry(sp, &trail, entries) {
|
|
|
|
|
|
|
|
if (sp->text) {
|
|
|
|
|
|
|
|
if (pos) {
|
|
|
|
|
|
|
|
pos->next = xcalloc(1, sizeof(*pos));
|
|
|
|
|
|
|
|
pos = pos->next;
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
subtitles = pos = xcalloc(1, sizeof(*pos));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
pos->text = sp->text;
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
set_dialog_subtitles(subtitles);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
static void reset_subtitle(void)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
struct subtitle_list *pos, *tmp;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
for (pos = subtitles; pos != NULL; pos = tmp) {
|
|
|
|
|
|
|
|
tmp = pos->next;
|
|
|
|
|
|
|
|
free(pos);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
subtitles = NULL;
|
|
|
|
|
|
|
|
set_dialog_subtitles(subtitles);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
struct search_data {
|
|
|
|
struct search_data {
|
|
|
|
struct list_head *head;
|
|
|
|
struct list_head *head;
|
|
|
@ -349,10 +391,12 @@ static void search_conf(void)
|
|
|
|
char *dialog_input;
|
|
|
|
char *dialog_input;
|
|
|
|
int dres, vscroll = 0, hscroll = 0;
|
|
|
|
int dres, vscroll = 0, hscroll = 0;
|
|
|
|
bool again;
|
|
|
|
bool again;
|
|
|
|
|
|
|
|
struct gstr sttext;
|
|
|
|
|
|
|
|
struct subtitle_part stpart;
|
|
|
|
|
|
|
|
|
|
|
|
title = str_new();
|
|
|
|
title = str_new();
|
|
|
|
str_printf( &title, _("Enter %s (sub)string to search for "
|
|
|
|
str_printf( &title, _("Enter (sub)string or regexp to search for "
|
|
|
|
"(with or without \"%s\")"), CONFIG_, CONFIG_);
|
|
|
|
"(with or without \"%s\")"), CONFIG_);
|
|
|
|
|
|
|
|
|
|
|
|
again:
|
|
|
|
again:
|
|
|
|
dialog_clear();
|
|
|
|
dialog_clear();
|
|
|
@ -375,6 +419,11 @@ again:
|
|
|
|
if (strncasecmp(dialog_input_result, CONFIG_, strlen(CONFIG_)) == 0)
|
|
|
|
if (strncasecmp(dialog_input_result, CONFIG_, strlen(CONFIG_)) == 0)
|
|
|
|
dialog_input += strlen(CONFIG_);
|
|
|
|
dialog_input += strlen(CONFIG_);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
sttext = str_new();
|
|
|
|
|
|
|
|
str_printf(&sttext, "Search (%s)", dialog_input_result);
|
|
|
|
|
|
|
|
stpart.text = str_get(&sttext);
|
|
|
|
|
|
|
|
list_add_tail(&stpart.entries, &trail);
|
|
|
|
|
|
|
|
|
|
|
|
sym_arr = sym_re_search(dialog_input);
|
|
|
|
sym_arr = sym_re_search(dialog_input);
|
|
|
|
do {
|
|
|
|
do {
|
|
|
|
LIST_HEAD(head);
|
|
|
|
LIST_HEAD(head);
|
|
|
@ -385,8 +434,10 @@ again:
|
|
|
|
.targets = targets,
|
|
|
|
.targets = targets,
|
|
|
|
.keys = keys,
|
|
|
|
.keys = keys,
|
|
|
|
};
|
|
|
|
};
|
|
|
|
|
|
|
|
struct jump_key *pos, *tmp;
|
|
|
|
|
|
|
|
|
|
|
|
res = get_relations_str(sym_arr, &head);
|
|
|
|
res = get_relations_str(sym_arr, &head);
|
|
|
|
|
|
|
|
set_subtitle();
|
|
|
|
dres = show_textbox_ext(_("Search Results"), (char *)
|
|
|
|
dres = show_textbox_ext(_("Search Results"), (char *)
|
|
|
|
str_get(&res), 0, 0, keys, &vscroll,
|
|
|
|
str_get(&res), 0, 0, keys, &vscroll,
|
|
|
|
&hscroll, &update_text, (void *)
|
|
|
|
&hscroll, &update_text, (void *)
|
|
|
@ -398,9 +449,13 @@ again:
|
|
|
|
again = true;
|
|
|
|
again = true;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
str_free(&res);
|
|
|
|
str_free(&res);
|
|
|
|
|
|
|
|
list_for_each_entry_safe(pos, tmp, &head, entries)
|
|
|
|
|
|
|
|
free(pos);
|
|
|
|
} while (again);
|
|
|
|
} while (again);
|
|
|
|
free(sym_arr);
|
|
|
|
free(sym_arr);
|
|
|
|
str_free(&title);
|
|
|
|
str_free(&title);
|
|
|
|
|
|
|
|
list_del(trail.prev);
|
|
|
|
|
|
|
|
str_free(&sttext);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void build_conf(struct menu *menu)
|
|
|
|
static void build_conf(struct menu *menu)
|
|
|
@ -437,8 +492,9 @@ static void build_conf(struct menu *menu)
|
|
|
|
menu->data ? "-->" : "++>",
|
|
|
|
menu->data ? "-->" : "++>",
|
|
|
|
indent + 1, ' ', prompt);
|
|
|
|
indent + 1, ' ', prompt);
|
|
|
|
} else
|
|
|
|
} else
|
|
|
|
item_make(" %*c%s --->", indent + 1, ' ', prompt);
|
|
|
|
item_make(" %*c%s %s",
|
|
|
|
|
|
|
|
indent + 1, ' ', prompt,
|
|
|
|
|
|
|
|
menu_is_empty(menu) ? "----" : "--->");
|
|
|
|
item_set_tag('m');
|
|
|
|
item_set_tag('m');
|
|
|
|
item_set_data(menu);
|
|
|
|
item_set_data(menu);
|
|
|
|
if (single_menu_mode && menu->data)
|
|
|
|
if (single_menu_mode && menu->data)
|
|
|
@ -569,7 +625,7 @@ static void build_conf(struct menu *menu)
|
|
|
|
(sym_has_value(sym) || !sym_is_changable(sym)) ?
|
|
|
|
(sym_has_value(sym) || !sym_is_changable(sym)) ?
|
|
|
|
"" : _(" (NEW)"));
|
|
|
|
"" : _(" (NEW)"));
|
|
|
|
if (menu->prompt->type == P_MENU) {
|
|
|
|
if (menu->prompt->type == P_MENU) {
|
|
|
|
item_add_str(" --->");
|
|
|
|
item_add_str(" %s", menu_is_empty(menu) ? "----" : "--->");
|
|
|
|
return;
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -585,27 +641,36 @@ static void conf(struct menu *menu, struct menu *active_menu)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
struct menu *submenu;
|
|
|
|
struct menu *submenu;
|
|
|
|
const char *prompt = menu_get_prompt(menu);
|
|
|
|
const char *prompt = menu_get_prompt(menu);
|
|
|
|
|
|
|
|
struct subtitle_part stpart;
|
|
|
|
struct symbol *sym;
|
|
|
|
struct symbol *sym;
|
|
|
|
int res;
|
|
|
|
int res;
|
|
|
|
int s_scroll = 0;
|
|
|
|
int s_scroll = 0;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (menu != &rootmenu)
|
|
|
|
|
|
|
|
stpart.text = menu_get_prompt(menu);
|
|
|
|
|
|
|
|
else
|
|
|
|
|
|
|
|
stpart.text = NULL;
|
|
|
|
|
|
|
|
list_add_tail(&stpart.entries, &trail);
|
|
|
|
|
|
|
|
|
|
|
|
while (1) {
|
|
|
|
while (1) {
|
|
|
|
item_reset();
|
|
|
|
item_reset();
|
|
|
|
current_menu = menu;
|
|
|
|
current_menu = menu;
|
|
|
|
build_conf(menu);
|
|
|
|
build_conf(menu);
|
|
|
|
if (!child_count)
|
|
|
|
if (!child_count)
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
|
|
|
|
set_subtitle();
|
|
|
|
dialog_clear();
|
|
|
|
dialog_clear();
|
|
|
|
res = dialog_menu(prompt ? _(prompt) : _("Main Menu"),
|
|
|
|
res = dialog_menu(prompt ? _(prompt) : _("Main Menu"),
|
|
|
|
_(menu_instructions),
|
|
|
|
_(menu_instructions),
|
|
|
|
active_menu, &s_scroll);
|
|
|
|
active_menu, &s_scroll);
|
|
|
|
if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
|
|
|
|
if (res == 1 || res == KEY_ESC || res == -ERRDISPLAYTOOSMALL)
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
if (!item_activate_selected())
|
|
|
|
if (item_count() != 0) {
|
|
|
|
continue;
|
|
|
|
if (!item_activate_selected())
|
|
|
|
if (!item_tag())
|
|
|
|
continue;
|
|
|
|
continue;
|
|
|
|
if (!item_tag())
|
|
|
|
|
|
|
|
continue;
|
|
|
|
|
|
|
|
}
|
|
|
|
submenu = item_data();
|
|
|
|
submenu = item_data();
|
|
|
|
active_menu = item_data();
|
|
|
|
active_menu = item_data();
|
|
|
|
if (submenu)
|
|
|
|
if (submenu)
|
|
|
@ -636,13 +701,17 @@ static void conf(struct menu *menu, struct menu *active_menu)
|
|
|
|
case 2:
|
|
|
|
case 2:
|
|
|
|
if (sym)
|
|
|
|
if (sym)
|
|
|
|
show_help(submenu);
|
|
|
|
show_help(submenu);
|
|
|
|
else
|
|
|
|
else {
|
|
|
|
|
|
|
|
reset_subtitle();
|
|
|
|
show_helptext(_("README"), _(mconf_readme));
|
|
|
|
show_helptext(_("README"), _(mconf_readme));
|
|
|
|
|
|
|
|
}
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 3:
|
|
|
|
case 3:
|
|
|
|
|
|
|
|
reset_subtitle();
|
|
|
|
conf_save();
|
|
|
|
conf_save();
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 4:
|
|
|
|
case 4:
|
|
|
|
|
|
|
|
reset_subtitle();
|
|
|
|
conf_load();
|
|
|
|
conf_load();
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
case 5:
|
|
|
|
case 5:
|
|
|
@ -675,6 +744,8 @@ static void conf(struct menu *menu, struct menu *active_menu)
|
|
|
|
break;
|
|
|
|
break;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
list_del(trail.prev);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static int show_textbox_ext(const char *title, char *text, int r, int c, int
|
|
|
|
static int show_textbox_ext(const char *title, char *text, int r, int c, int
|
|
|
@ -751,7 +822,9 @@ static void conf_choice(struct menu *menu)
|
|
|
|
dialog_clear();
|
|
|
|
dialog_clear();
|
|
|
|
res = dialog_checklist(prompt ? _(prompt) : _("Main Menu"),
|
|
|
|
res = dialog_checklist(prompt ? _(prompt) : _("Main Menu"),
|
|
|
|
_(radiolist_instructions),
|
|
|
|
_(radiolist_instructions),
|
|
|
|
15, 70, 6);
|
|
|
|
MENUBOX_HEIGTH_MIN,
|
|
|
|
|
|
|
|
MENUBOX_WIDTH_MIN,
|
|
|
|
|
|
|
|
CHECKLIST_HEIGTH_MIN);
|
|
|
|
selected = item_activate_selected();
|
|
|
|
selected = item_activate_selected();
|
|
|
|
switch (res) {
|
|
|
|
switch (res) {
|
|
|
|
case 0:
|
|
|
|
case 0:
|
|
|
@ -887,11 +960,12 @@ static int handle_exit(void)
|
|
|
|
int res;
|
|
|
|
int res;
|
|
|
|
|
|
|
|
|
|
|
|
save_and_exit = 1;
|
|
|
|
save_and_exit = 1;
|
|
|
|
|
|
|
|
reset_subtitle();
|
|
|
|
dialog_clear();
|
|
|
|
dialog_clear();
|
|
|
|
if (conf_get_changed())
|
|
|
|
if (conf_get_changed())
|
|
|
|
res = dialog_yesno(NULL,
|
|
|
|
res = dialog_yesno(NULL,
|
|
|
|
_("Do you wish to save your new configuration ?\n"
|
|
|
|
_("Do you wish to save your new configuration?\n"
|
|
|
|
"<ESC><ESC> to continue."),
|
|
|
|
"(Press <ESC><ESC> to continue kernel configuration.)"),
|
|
|
|
6, 60);
|
|
|
|
6, 60);
|
|
|
|
else
|
|
|
|
else
|
|
|
|
res = -1;
|
|
|
|
res = -1;
|
|
|
@ -966,4 +1040,3 @@ int main(int ac, char **av)
|
|
|
|
|
|
|
|
|
|
|
|
return res;
|
|
|
|
return res;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|