[PATCH 3/3] kconfig and lxdialog, kernel 2.6.13.4

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

Signed-off-by: Sean E. Fao <[email protected]>

diff -up linux-2.6.13.4/scripts/kconfig/mconf.c linux/scripts/kconfig/mconf.c --- linux-2.6.13.4/scripts/kconfig/mconf.c 2005-10-10 13:54:29.000000000 -0500
+++ linux/scripts/kconfig/mconf.c    2005-10-27 09:32:09.000000000 -0500
@@ -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;
}

--
Sean

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux