Gitweb:     
http://git.kernel.org/git/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=b321429325e4c911c379a5bf4156c9fc9713e425
Commit:     b321429325e4c911c379a5bf4156c9fc9713e425
Parent:     3dfcaf16135150d0f025047a7525664a41bb2adf
Author:     Karsten Wiese <[EMAIL PROTECTED]>
AuthorDate: Wed Dec 13 00:34:06 2006 -0800
Committer:  Linus Torvalds <[EMAIL PROTECTED]>
CommitDate: Wed Dec 13 09:05:48 2006 -0800

    [PATCH] kconfig: new function "bool conf_get_changed(void)"
    
    Run "make xconfig" on a freshly untarred kernel-tree.  Look at the floppy 
disk
    icon of the qt application, that has just started: Its in a normal, active
    state.
    
    Mouse click on it: .config is being saved.
    
    This patch series changes things so taht
    after the mouse click on the floppy disk icon, the icon is greyed out.
    If you mouse click on it now, nothing happens.
    
    If you change some CONFIG_*, the floppy disk icon returns to "active state",
    that is, if you mouse click it now, .config is written.
    
    This patch:
    
    Returns sym_change_count to reflect the .config's change state.
    All read only accesses of
        sym_change_count
    are replaced by calls to
        conf_get_changed()
    .
    mconfig.c is manipulated to ask for saving only when
    conf_get_changed() returned true.
    
    Signed-off-by: Karsten Wiese <[EMAIL PROTECTED]>
    Cc: Sam Ravnborg <[EMAIL PROTECTED]>
    Cc: Roman Zippel <[EMAIL PROTECTED]>
    Acked-by: Randy Dunlap <[EMAIL PROTECTED]>
    Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
    Signed-off-by: Linus Torvalds <[EMAIL PROTECTED]>
---
 scripts/kconfig/conf.c      |    2 +-
 scripts/kconfig/confdata.c  |    7 ++++++-
 scripts/kconfig/lkc_proto.h |    1 +
 scripts/kconfig/mconf.c     |   21 ++++++++++++++-------
 scripts/kconfig/qconf.cc    |    2 +-
 5 files changed, 23 insertions(+), 10 deletions(-)

diff --git a/scripts/kconfig/conf.c b/scripts/kconfig/conf.c
index 4dcb886..124b341 100644
--- a/scripts/kconfig/conf.c
+++ b/scripts/kconfig/conf.c
@@ -600,7 +600,7 @@ int main(int ac, char **av)
                        input_mode = ask_silent;
                        valid_stdin = 1;
                }
-       } else if (sym_change_count) {
+       } else if (conf_get_changed()) {
                name = getenv("KCONFIG_NOSILENTUPDATE");
                if (name && *name) {
                        fprintf(stderr, _("\n*** Kernel configuration requires 
explicit update.\n\n"));
diff --git a/scripts/kconfig/confdata.c b/scripts/kconfig/confdata.c
index 66b15ef..140742e 100644
--- a/scripts/kconfig/confdata.c
+++ b/scripts/kconfig/confdata.c
@@ -432,7 +432,7 @@ int conf_write(const char *name)
                     use_timestamp ? "# " : "",
                     use_timestamp ? ctime(&now) : "");
 
-       if (!sym_change_count)
+       if (!conf_get_changed())
                sym_clear_all_valid();
 
        menu = rootmenu.list;
@@ -765,3 +765,8 @@ int conf_write_autoconf(void)
 
        return 0;
 }
+
+bool conf_get_changed(void)
+{
+       return sym_change_count;
+}
diff --git a/scripts/kconfig/lkc_proto.h b/scripts/kconfig/lkc_proto.h
index a263746..9f1823c 100644
--- a/scripts/kconfig/lkc_proto.h
+++ b/scripts/kconfig/lkc_proto.h
@@ -5,6 +5,7 @@ P(conf_read,int,(const char *name));
 P(conf_read_simple,int,(const char *name, int));
 P(conf_write,int,(const char *name));
 P(conf_write_autoconf,int,(void));
+P(conf_get_changed,bool,(void));
 
 /* menu.c */
 P(rootmenu,struct menu,);
diff --git a/scripts/kconfig/mconf.c b/scripts/kconfig/mconf.c
index 08a4c7a..3f9a132 100644
--- a/scripts/kconfig/mconf.c
+++ b/scripts/kconfig/mconf.c
@@ -890,14 +890,19 @@ int main(int ac, char **av)
        do {
                conf(&rootmenu);
                dialog_clear();
-               res = dialog_yesno(NULL,
-                                  _("Do you wish to save your "
-                                    "new kernel configuration?\n"
-                                    "<ESC><ESC> to continue."),
-                                  6, 60);
+               if (conf_get_changed())
+                       res = dialog_yesno(NULL,
+                                          _("Do you wish to save your "
+                                            "new kernel configuration?\n"
+                                            "<ESC><ESC> to continue."),
+                                          6, 60);
+               else
+                       res = -1;
        } while (res == KEY_ESC);
        end_dialog();
-       if (res == 0) {
+
+       switch (res) {
+       case 0:
                if (conf_write(NULL)) {
                        fprintf(stderr, _("\n\n"
                                "Error during writing of the kernel 
configuration.\n"
@@ -905,11 +910,13 @@ int main(int ac, char **av)
                                "\n\n"));
                        return 1;
                }
+       case -1:
                printf(_("\n\n"
                        "*** End of Linux kernel configuration.\n"
                        "*** Execute 'make' to build the kernel or try 'make 
help'."
                        "\n\n"));
-       } else {
+               break;
+       default:
                fprintf(stderr, _("\n\n"
                        "Your kernel configuration changes were NOT saved."
                        "\n\n"));
diff --git a/scripts/kconfig/qconf.cc b/scripts/kconfig/qconf.cc
index f5628c5..8d60d99 100644
--- a/scripts/kconfig/qconf.cc
+++ b/scripts/kconfig/qconf.cc
@@ -1585,7 +1585,7 @@ void ConfigMainWindow::showFullView(void)
  */
 void ConfigMainWindow::closeEvent(QCloseEvent* e)
 {
-       if (!sym_change_count) {
+       if (!conf_get_changed()) {
                e->accept();
                return;
        }
-
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to