kconfig and lxdialog, kernel 2.6.13.4
PATCH 3/3 kconfig and lxdialog, kernel 2.6.13.4
This patch is a functionality modification that implements a proposed design change to lxdialog. Specifically, this patch makes use of the proposed "Abort" functionality of lxdialog, which adds an "Abort" button in *addition* to the "Yes" and "No" buttons that are currently displayed when a user exits kconfig. The Abort button allows a user to return to the root menu of kconfig rather than exiting.
scripts/kconfig/mconf.c 2005-10-27 09:32:09.000000000 -0500 renamed from scripts/kconfig/mconf.c 2005-10-10 13:54:29.000000000 -0500 +0 -0
@@ -1041,7 +1041,7 @@ int main(int ac, char **av)
{
struct symbol *sym;
char *mode;- int stat;
+ int stat, abort;
setlocale(LC_ALL, "");
bindtextdomain(PACKAGE, LOCALEDIR);
@@ -1064,34 +1064,44 @@ int main(int ac, char **av)
tcgetattr(1, &ios_org);
atexit(conf_cleanup);
init_wsize();- conf(&rootmenu);
- do {
- cprint_init();
- cprint("--yesno");
- cprint(_("Do you wish to save your new kernel configuration?"));
- cprint("5");
- cprint("60");
- stat = exec_conf();- } while (stat < 0);
-
- if (stat == 0) {
- if (conf_write(NULL)) {
- fprintf(stderr, _("\n\n"
- "Error during writing of the kernel configuration.\n"
- "Your kernel configuration changes were NOT saved."
- "\n\n"));
- return 1;
- }
- printf(_("\n\n"
- "*** End of Linux kernel configuration.\n"
- "*** Execute 'make' to build the kernel or try 'make help'."
- "\n\n"));- } else {
- fprintf(stderr, _("\n\n"
- "Your kernel configuration changes were NOT saved."
- "\n\n"));
- }
+ /* Loop if abort button is pushed from exit dialog */
+ do
+ {
+ conf(&rootmenu);
+
+ do {
+ cprint_init();
+ cprint("--yesnoabort");
+ cprint(_("Do you wish to save your new kernel configuration?"));
+ cprint("5");
+ cprint("60");
+ stat = exec_conf();+ } while (stat < 0);
+
+ if (stat == 0) {
+ if (conf_write(NULL)) {
+ fprintf(stderr, _("\n\n"
+ "Error during writing of the kernel configuration.\n" + "Your kernel configuration changes were NOT saved." + "\n\n"));
+ abort = 0;
+ return 1;
+ }
+ printf(_("\n\n"
+ "*** End of Linux kernel configuration.\n" + "*** Execute 'make' to build the kernel or try 'make help'." + "\n\n"));
+ abort = 0;
+ } else if (stat == 2) {
+ abort = 1;
+ } else {
+ fprintf(stderr, _("\n\n"
+ "Your kernel configuration changes were NOT saved."
+ "\n\n"));
+ abort = 0;
+ }
+ } while (abort); /* Loop if abort button is pushed from exit dialog */
return 0; }
Signature · 1 line
Sean
Hi,
Quoted 6 lines · Sean
This patch is a functionality modification that implements a proposed design change to lxdialog. Specifically, this patch makes use of the proposed "Abort" functionality of lxdialog, which adds an "Abort" button in *addition* to the "Yes" and "No" buttons that are currently displayed when a user exits kconfig. The Abort button allows a user to return to the root menu of kconfig rather than exiting.
This reminds me I had a similiar patch lying around, could you use this one as a basis.
bye, Roman
scripts/kconfig/mconf.c | 49 +++++++++++++++++++++++++----------------------- 1 file changed, 26 insertions(+), 23 deletions(-)
scripts/kconfig/mconf.c +26 -23
@@ -1064,34 +1064,37 @@ int main(int ac, char **av)tcgetattr (1 , &ios_org);atexit (conf_cleanup);init_wsize (); -conf (&rootmenu); +while (1 ) { +conf (&rootmenu); -do { -cprint_init (); -cprint ("--yesno" ); -cprint (_ ("Do you wish to save your new kernel configuration?" )); -cprint ("5" ); -cprint ("60" ); - stat =exec_conf (); - }while (stat <0 ); +do { +cprint_init (); +cprint ("--yesno" ); +cprint (_ ("Do you wish to save your new kernel configuration?" )); +cprint ("5" ); +cprint ("60" ); + stat =exec_conf (); + }while (stat <0 ); -if (stat ==0 ) { -if (conf_write (NULL )) { +switch (stat) { +case 0 : +if (conf_write (NULL )) { +fprintf (stderr,_ ("\n\n" +"Error during writing of the kernel configuration.\n" +"Your kernel configuration changes were NOT saved." +"\n\n" )); +return 1 ; + } +printf (_ ("\n\n" +"*** End of Linux kernel configuration.\n" +"*** Execute 'make' to build the kernel or try 'make help'." +"\n\n" )); +return 0 ; +case 1 :fprintf (stderr,_ ("\n\n" -"Error during writing of the kernel configuration.\n" "Your kernel configuration changes were NOT saved." "\n\n" )); -return 1 ; +return 0 ; } -printf (_ ("\n\n" -"*** End of Linux kernel configuration.\n" -"*** Execute 'make' to build the kernel or try 'make help'." -"\n\n" )); - }else { -fprintf (stderr,_ ("\n\n" -"Your kernel configuration changes were NOT saved." -"\n\n" )); } - -return 0 ; }
Re: [PATCH 3/3] kconfig and lxdialog, kernel 2.6.14
Quoted 10 lines · Roman Zippel
Quoted 6 lines · Sean
This patch is a functionality modification that implements a proposed design change to lxdialog. Specifically, this patch makes use of the proposed "Abort" functionality of lxdialog, which adds an "Abort" button in addition to the "Yes" and "No" buttons that are currently displayed when a user exits kconfig. The Abort button allows a user to return to the root menu of kconfig rather than exiting.
Quoted 2 lines
This reminds me I had a similiar patch lying around, could you use this one as a basis.
I like your patch because it was the same idea and one less variable. The only thing that worries me is that the return value from "changes NOT saved" is 0 rather than 1, which the original returned. Is there any reason for this?
---
scripts/kconfig/mconf.c +26 -23
@@ -1064,34 +1064,37 @@ int main(int ac, char **av)tcgetattr (1 , &ios_org);atexit (conf_cleanup);init_wsize (); -conf (&rootmenu); +while (1 ) { +conf (&rootmenu); -do { -cprint_init (); -cprint ("--yesno" ); -cprint (_ ("Do you wish to save your new kernel configuration?" )); -cprint ("5" ); -cprint ("60" ); - stat =exec_conf (); - }while (stat <0 ); +do { +cprint_init (); +cprint ("--yesnoabort" ); +cprint (_ ("Do you wish to save your new kernel configuration?" )); +cprint ("5" ); +cprint ("60" ); + stat =exec_conf (); + }while (stat <0 ); -if (stat ==0 ) { -if (conf_write (NULL )) { +switch (stat) { +case 0 : +if (conf_write (NULL )) { +fprintf (stderr,_ ("\n\n" +"Error during writing of the kernel configuration.\n" +"Your kernel configuration changes were NOT saved." +"\n\n" )); +return 1 ; + } +printf (_ ("\n\n" +"*** End of Linux kernel configuration.\n" +"*** Execute 'make' to build the kernel or try 'make help'." +"\n\n" )); +return 0 ; +case 1 :fprintf (stderr,_ ("\n\n" -"Error during writing of the kernel configuration.\n" "Your kernel configuration changes were NOT saved." "\n\n" )); -return 1 ; +return 0 ; } -printf (_ ("\n\n" -"*** End of Linux kernel configuration.\n" -"*** Execute 'make' to build the kernel or try 'make help'." -"\n\n" )); - }else { -fprintf (stderr,_ ("\n\n" -"Your kernel configuration changes were NOT saved." -"\n\n" )); } - -return 0 ; }
Re: [PATCH 3/3] kconfig and lxdialog, kernel 2.6.14
I'm having a bad time with this patch. First I forgot to send it to the LKML then mutt attached the wrong email address for me.
Please use [email protected] for reply messages and I apologize for the confusion.
Signature · 1 line
Sean