From e587bc31c9428d33bd833a97a284be0d7b7b2053 Mon Sep 17 00:00:00 2001 From: nobody Date: Sun, 10 Mar 2002 15:35:38 +0000 Subject: This commit was manufactured by cvs2svn to create tag 'GNOME_CONTROL_CENTER_1_99_8'. svn path=/tags/GNOME_CONTROL_CENTER_1_99_8/; revision=16045 --- mail/main.c | 173 ------------------------------------------------------------ 1 file changed, 173 deletions(-) delete mode 100644 mail/main.c (limited to 'mail/main.c') diff --git a/mail/main.c b/mail/main.c deleted file mode 100644 index 8876fb7517..0000000000 --- a/mail/main.c +++ /dev/null @@ -1,173 +0,0 @@ -/* - * main.c: The core of the mail component - * - * Author: - * Miguel de Icaza (miguel@ximian.com) - * - * (C) 2000 Ximian, Inc. - */ - -#ifdef HAVE_CONFIG_H -#include -#endif - -#include - -#include -#include -#include -#include -#include -#include -#include -#include - -#ifdef GTKHTML_HAVE_GCONF -#include -#endif - -#include -#include -#include - -#include "e-util/e-passwords.h" - -#include "component-factory.h" -#include "composer/evolution-composer.h" -#include "mail.h" -#include "mail-mt.h" - -/*#define DO_MCHECK*/ - -#ifdef DO_MCHECK -static int blowup(int status) -{ - switch(status) { - case 1: - printf("Double free failure\n"); - break; - case 2: - printf("Memory clobbered before block\n"); - break; - case 3: - printf("Memory clobbered after block\n"); - break; - } - abort(); - return status; -} -#endif - -/* The GNOME SEGV handler will lose if it's not run from the main Gtk - * thread. So if we crash in another thread, redirect the signal. - */ -static void (*gnome_segv_handler) (int); - -static GStaticMutex segv_mutex = G_STATIC_MUTEX_INIT; - -static void -segv_redirect (int sig) -{ - if (pthread_self () == mail_gui_thread) - gnome_segv_handler (sig); - else { - pthread_kill (mail_gui_thread, sig); - /* We can't return from the signal handler or the - * thread may SEGV again. But we can't pthread_exit, - * because then the thread may get cleaned up before - * bug-buddy can get a stack trace. So we block by - * trying to lock a mutex we know is already locked. - */ - g_static_mutex_lock (&segv_mutex); - } -} - -int -main (int argc, char *argv []) -{ - CORBA_ORB orb; - struct sigaction sa, osa; - -#ifdef DO_MCHECK - /* used to make elfence work */ -#if 0 - free (malloc (10)); -#else - /*mtrace();*/ - mcheck(blowup); -#endif -#endif - bindtextdomain (PACKAGE, EVOLUTION_LOCALEDIR); - textdomain (PACKAGE); - - g_thread_init (NULL); - - gnome_init_with_popt_table ("evolution-mail-component", VERSION, - argc, argv, oaf_popt_options, 0, NULL); - - sigaction (SIGSEGV, NULL, &osa); - if (osa.sa_handler != SIG_DFL) { - sa.sa_flags = 0; - sigemptyset (&sa.sa_mask); - sa.sa_handler = segv_redirect; - sigaction (SIGSEGV, &sa, NULL); - sigaction (SIGBUS, &sa, NULL); - sigaction (SIGFPE, &sa, NULL); - gnome_segv_handler = osa.sa_handler; - g_static_mutex_lock (&segv_mutex); - } - - orb = oaf_init (argc, argv); - - if (bonobo_init (orb, CORBA_OBJECT_NIL, - CORBA_OBJECT_NIL) == FALSE) { - g_error ("Mail component could not initialize Bonobo.\n" - "If there was a warning message about the " - "RootPOA, it probably means\nyou compiled " - "Bonobo against GOAD instead of OAF."); - } - - gtk_widget_push_visual (gdk_rgb_get_visual ()); - gtk_widget_push_colormap (gdk_rgb_get_cmap ()); - -#ifdef GTKHTML_HAVE_GCONF - gconf_init (argc, argv, NULL); -#endif - - glade_gnome_init (); - - gnome_vfs_init (); - - e_cursors_init (); - - e_passwords_init ("Mail"); - - mail_config_init (); - mail_msg_init (); - - gnome_sound_init ("localhost"); - - component_factory_init (); - evolution_composer_factory_init (composer_send_cb, - composer_postpone_cb); - - if (gdk_threads_mutex) { - g_mutex_free (gdk_threads_mutex); - gdk_threads_mutex = NULL; - } - - GDK_THREADS_ENTER (); - bonobo_main (); - - mail_msg_cleanup(); - - GDK_THREADS_LEAVE (); - - mail_config_write_on_exit (); - - e_passwords_shutdown (); - - gnome_sound_shutdown (); - - return 0; -} -- cgit v1.2.3