Message ID | 20121008050513.GA22078@udknight (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
On Mon, Oct 08, 2012 at 01:05:14PM +0800, Wang YanQing wrote: > mconf make me annoying I have to make menuconfig && exit to save the > config when I am tuning .config time by time, it is even worse I have > to search down to my desire submenu time by time. Well, there are a bunch of patches from Benjamin Poirier adding the possibility to jump to search results and you could use them to go to your desired submenu. They're not upstream yet, AFAICT, although Michal applied them. > So I add "Save" button to save our time. With "Save" button, I can use > CRTL-Z after save config, and then use "%" or fg to resume menuconfig > and go on tuning. Ok, IIUC, when you put menuconfig in the background, edit .config by hand in the shell and then do 'fg', you need to reload the edited .config back otherwise you lose your changes you just did by hand. And generally speaking, why exactly do you need to edit .config by hand, and, at same time, do it over menuconfig? IMO, with Benjamin's patches, you don't need to do that anymore, right? Thanks.
On Mon, Oct 08, 2012 at 08:03:40AM +0200, Borislav Petkov wrote: > Well, there are a bunch of patches from Benjamin Poirier adding the > possibility to jump to search results and you could use them to go to > your desired submenu. First there are two ways to save the .config in menuconfig 1:Exit menuconfig with choice the "Yes" to save .config 2:go to top menu and use the "Save an alternate Configuration File" to save .config No matter which way you choice, it is slow and annoying to find the origin submenu where you have interest.The bunch of patches from Benjamin make it a little annoying, but not ignore it.Just image the situation that you have to exit menuconfig then "make menuconfig" and search down the submenu time by time, it is really annoying. > > So I add "Save" button to save our time. With "Save" button, I can use > > CRTL-Z after save config, and then use "%" or fg to resume menuconfig > > and go on tuning. > > Ok, IIUC, when you put menuconfig in the background, edit .config by > hand in the shell and then do 'fg', you need to reload the edited > .config back otherwise you lose your changes you just did by hand. > > And generally speaking, why exactly do you need to edit .config by hand, > and, at same time, do it over menuconfig? IMO, with Benjamin's patches, > you don't need to do that anymore, right? > > Thanks. It is not the first time to make me trouble with representation by my poor English, sorry for that.I hope the below words show the really meaning that I want to give you. With one terminal, I can do: 1: make menuconfig 2: ajust and use "Save" button to save .config 3: use CRTL-Z(konsole) to "menuconfig" run in background 3: make && test kernel 4: fg or "%1" to resume the menuconfig With two terminal, I can do: in first terminal 1: make menuconfig 2: ajust and use "Save" button to save .config in second terminal 3: make && test kernel go back the first terminal and go on tuning. Now, you can see what the "Save" button can do, it make there is no "exit menuconfig" or go to the top menu when you want to save .config in menuconfig Thanks! -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Oct 08, 2012 at 03:22:49PM +0800, Wang YanQing wrote: > With one terminal, I can do: > 1: make menuconfig > 2: ajust and use "Save" button to save .config > 3: use CRTL-Z(konsole) to "menuconfig" run in background > 3: make && test kernel > 4: fg or "%1" to resume the menuconfig I understand all that, but why do you think your usecase should be in the kernel? I still fail to see its relevance for the majority of people. AFAICT, this is only if you want to experiment with different options but you're better off replicating your .config with the couple options instead of adding a save button. IOW, this would only make a distant sense if you were playing with all kconfig options but why would you want to do that? Thanks.
On Mon, Oct 08, 2012 at 10:28:32AM +0200, Borislav Petkov wrote: > On Mon, Oct 08, 2012 at 03:22:49PM +0800, Wang YanQing wrote: > > With one terminal, I can do: > > 1: make menuconfig > > 2: ajust and use "Save" button to save .config > > 3: use CRTL-Z(konsole) to "menuconfig" run in background > > 3: make && test kernel > > 4: fg or "%1" to resume the menuconfig > > I understand all that, but why do you think your usecase should be > in the kernel? I still fail to see its relevance for the majority of > people. No, I don't think it is only my usecase. Use fg,CRTL-Z is very normal in terminal or in vt(console), without save button you have to exit menuconfig every time you want to save .config. By the way,just a quick test, qconfig, xconfig, nconfig all have the Save button, why do them exist if we follow your opinion? Thanks. -- To unsubscribe from this list: send the line "unsubscribe linux-kbuild" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Mon, Oct 08, 2012 at 04:45:44PM +0800, Wang YanQing wrote: > By the way,just a quick test, qconfig, xconfig, nconfig all have the > Save button, why do them exist if we follow your opinion? Because someone added them thinking it would be cool to have them, what do I know... In any case, I still fail to see a real value in this considering the use case, that's all. Unless someone proves me wrong with a better example that this... Thanks.
diff --git a/scripts/kconfig/lxdialog/menubox.c b/scripts/kconfig/lxdialog/menubox.c index 1d60473..f71f112 100644 --- a/scripts/kconfig/lxdialog/menubox.c +++ b/scripts/kconfig/lxdialog/menubox.c @@ -26,7 +26,7 @@ * * *) A bugfix for the Page-Down problem * - * *) Formerly when I used Page Down and Page Up, the cursor would be set + * *) Formerly when I used Page Down and Page Up, the cursor would be set * to the first position in the menu box. Now lxdialog is a bit * smarter and works more like other menu systems (just have a look at * it). @@ -160,6 +160,7 @@ static void print_buttons(WINDOW * win, int height, int width, int selected) print_button(win, gettext("Select"), y, x, selected == 0); print_button(win, gettext(" Exit "), y, x + 12, selected == 1); print_button(win, gettext(" Help "), y, x + 24, selected == 2); + print_button(win, gettext(" Save "), y, x + 36, selected == 3); wmove(win, y, x + 1 + 12 * selected); wrefresh(win); @@ -372,7 +373,7 @@ do_resize: case TAB: case KEY_RIGHT: button = ((key == KEY_LEFT ? --button : ++button) < 0) - ? 2 : (button > 2 ? 0 : button); + ? 3 : (button > 3 ? 0 : button); print_buttons(dialog, height, width, button); wrefresh(menu); @@ -399,17 +400,17 @@ do_resize: return 2; case 's': case 'y': - return 3; - case 'n': return 4; - case 'm': + case 'n': return 5; - case ' ': + case 'm': return 6; - case '/': + case ' ': return 7; - case 'z': + case '/': return 8; + case 'z': + return 9; case '\n': return button; } diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c index f584a28..72c4ae6 100644 --- a/scripts/kconfig/mconf.c +++ b/scripts/kconfig/mconf.c @@ -274,6 +274,7 @@ static int child_count; static int single_menu_mode; static int show_all_options; static int saved_x, saved_y; +static int save_and_exit; static void conf(struct menu *menu); static void conf_choice(struct menu *menu); @@ -521,6 +522,7 @@ static void conf(struct menu *menu) struct symbol *sym; struct menu *active_menu = NULL; int res; + int yesno; int s_scroll = 0; while (1) { @@ -588,6 +590,25 @@ static void conf(struct menu *menu) show_helptext(_("README"), _(mconf_readme)); break; case 3: + if (!conf_get_changed()) { + break; + } + + yesno = dialog_yesno(NULL, + _("Do you wish to save your " + "new configuration?\n" + "<ESC><ESC> to continue."), + 6, 60); + if (yesno == 0) { + if (conf_write(filename)) { + show_textbox(NULL, + _("Error while writing of the configuration.\n" + "Your configuration changes were NOT saved."), + 6,60); + } + } + break; + case 4: if (item_is_tag('t')) { if (sym_set_tristate_value(sym, yes)) break; @@ -595,24 +616,24 @@ static void conf(struct menu *menu) show_textbox(NULL, setmod_text, 6, 74); } break; - case 4: + case 5: if (item_is_tag('t')) sym_set_tristate_value(sym, no); break; - case 5: + case 6: if (item_is_tag('t')) sym_set_tristate_value(sym, mod); break; - case 6: + case 7: if (item_is_tag('t')) sym_toggle_tristate_value(sym); else if (item_is_tag('m')) conf(submenu); break; - case 7: + case 8: search_conf(); break; - case 8: + case 9: show_all_options = !show_all_options; break; } @@ -630,6 +651,17 @@ static void show_helptext(const char *title, const char *text) show_textbox(title, text, 0, 0); } +static void conf_message_callback(const char *fmt, va_list ap) +{ + char buf[1024]; + + vsnprintf(buf, sizeof(buf), fmt, ap); + if (save_and_exit) + printf("%s", buf); + else + show_textbox(NULL, buf, 6, 60); +} + static void show_help(struct menu *menu) { struct gstr help = str_new(); @@ -797,7 +829,7 @@ static void conf_save(void) static int handle_exit(void) { int res; - + save_and_exit = 1; dialog_clear(); if (conf_get_changed()) res = dialog_yesno(NULL, @@ -872,11 +904,12 @@ int main(int ac, char **av) } set_config_filename(conf_get_configname()); + conf_set_message_callback(conf_message_callback); do { + save_and_exit = 0; conf(&rootmenu); res = handle_exit(); } while (res == KEY_ESC); return res; } -
mconf make me annoying I have to make menuconfig && exit to save the config when I am tuning .config time by time, it is even worse I have to search down to my desire submenu time by time. So I add "Save" button to save our time. With "Save" button, I can use CRTL-Z after save config, and then use "%" or fg to resume menuconfig and go on tuning. v2: Rewrite the most code to make it more correct v3: Fix the behavior of conf_message_callback when exit. Signed-off-by: Wang YanQing <udknight@gmail.com> --- scripts/kconfig/lxdialog/menubox.c | 17 +++++++------- scripts/kconfig/mconf.c | 47 ++++++++++++++++++++++++++++++++------ 2 files changed, 49 insertions(+), 15 deletions(-)