0.9.7claws38
authorChristoph Hohmann <reboot@gmx.ch>
Thu, 11 Dec 2003 20:30:51 +0000 (20:30 +0000)
committerChristoph Hohmann <reboot@gmx.ch>
Thu, 11 Dec 2003 20:30:51 +0000 (20:30 +0000)
* src/crash.c
* src/main.[ch]
        make sure the clean_exit() funtion is not called again by the
        signal handler while it is already running

* src/summaryview.c
        fix wrong assertion

ChangeLog.claws
configure.ac
src/crash.c
src/main.c
src/main.h
src/summaryview.c

index a9c53439446947034927db99afffc99741780994..ad4106e46ae871693eff82b79d53acea0e3246f8 100644 (file)
@@ -1,3 +1,13 @@
+2003-12-11 [christoph] 0.9.7claws38
+
+       * src/crash.c
+       * src/main.[ch]
+               make sure the clean_exit() funtion is not called again by the
+               signal handler while it is already running
+
+       * src/summaryview.c
+               fix wrong assertion
+
 2003-12-11 [paul]      0.9.7claws37
 
        * src/compose.c
@@ -8,7 +18,6 @@
        * src/plugins/clamav/clamav_plugin.c
                fix (don't break) signature count
                use cl_strerror() instead of deprecated cl_perror()
-               
        
 2003-12-11 [darko]     0.9.7claws35
 
index 9289a26d7044694adf7fc5a8609e538451889412..494b8c3168612697c38e5c60f8cfdefceed0f748 100644 (file)
@@ -11,7 +11,7 @@ MINOR_VERSION=9
 MICRO_VERSION=7
 INTERFACE_AGE=0
 BINARY_AGE=0
-EXTRA_VERSION=37
+EXTRA_VERSION=38
 if test $EXTRA_VERSION -eq 0; then
     VERSION=${MAJOR_VERSION}.${MINOR_VERSION}.${MICRO_VERSION}claws
 else
index e7a3f6a2bdf3c2658ef742f164727b8c78027b35..f2404482abcae7599cdcda55b92dc8cb5a1a27d9 100644 (file)
@@ -502,7 +502,7 @@ static void crash_handler(int sig)
 
 #ifdef SIGTERM
        if (sig == SIGTERM) 
-               clean_quit();
+               clean_quit(NULL);
 #endif
 
        /*
index fa6b38d72297ce68a879c456c8ddab3b67f7f594..40c6d9597f84b99dc6d5f31900330a4aed6ddcf0 100644 (file)
@@ -541,8 +541,14 @@ static void draft_all_messages(void)
        }       
 }
 
-void clean_quit(void)  
+gboolean clean_quit(gpointer data)
 {
+       static gboolean firstrun = TRUE;
+
+       if (!firstrun)
+               return FALSE;
+       firstrun = FALSE;
+
        /*!< Good idea to have the main window stored in a 
         *   static variable so we can check that variable
         *   to see if we're really allowed to do things
@@ -556,7 +562,7 @@ void clean_quit(void)
         * in the original spawner, and not in a spawned
         * child. */
        if (!static_mainwindow) 
-               return;
+               return FALSE;
                
        draft_all_messages();
 
@@ -569,7 +575,8 @@ void clean_quit(void)
        } else {
                app_will_exit(NULL, static_mainwindow);
        }
-       exit(0);
+
+       return FALSE;
 }
 
 void app_will_exit(GtkWidget *widget, gpointer data)
@@ -896,7 +903,8 @@ static void send_queue(void)
 static void quit_signal_handler(int sig)
 {
        debug_print("Quitting on signal %d\n", sig);
-       clean_quit();
+
+       g_timeout_add(0, clean_quit, NULL);
 }
 
 static void install_basic_sighandlers()
index 3728c0991875317c6d62d5a63ac4667f63256ad4..7422e1dded3fa745ebe986027c53c8c608b18cc7 100644 (file)
@@ -27,6 +27,6 @@ extern gchar *prog_version;
 extern gboolean debug_mode;
 
 void app_will_exit     (GtkWidget *widget, gpointer data);
-void clean_quit                (void);
+gboolean clean_quit    (gpointer data);
 
 #endif /* __MAIN_H__ */
index 34174a56d3e5d15d76a4eb0f75396b7e80c03010..3cce3380357ef37b17fc937e3fd8def8ab37b52f 100644 (file)
@@ -83,7 +83,6 @@
 #include "matcher_parser.h"
 #include "hooks.h"
 #include "description_window.h"
-#include "folder.h"
 
 #define SUMMARY_COL_MARK_WIDTH         10
 #define SUMMARY_COL_STATUS_WIDTH       13
@@ -5019,7 +5018,7 @@ static void news_flag_crosspost(MsgInfo *msginfo)
        g_return_if_fail(msginfo->folder != NULL);
        g_return_if_fail(msginfo->folder->folder != NULL);
        mff = msginfo->folder->folder;
-       g_return_if_fail(mff->klass->type != F_NEWS);
+       g_return_if_fail(mff->klass->type == F_NEWS);
 
        if (mff->account->mark_crosspost_read) {
                line = g_string_sized_new(128);