aboutsummaryrefslogtreecommitdiffstats
path: root/mail/main.c
diff options
context:
space:
mode:
Diffstat (limited to 'mail/main.c')
-rw-r--r--mail/main.c161
1 files changed, 0 insertions, 161 deletions
diff --git a/mail/main.c b/mail/main.c
deleted file mode 100644
index b2f146ce68..0000000000
--- a/mail/main.c
+++ /dev/null
@@ -1,161 +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 <config.h>
-#endif
-
-#include <signal.h>
-
-#include <libgnome/gnome-sound.h>
-#include <bonobo/bonobo-main.h>
-#include <bonobo-activation/bonobo-activation-init.h>
-#include <glade/glade.h>
-#include <libgnomevfs/gnome-vfs.h>
-
-#include <gconf/gconf.h>
-
-#include <gal/widgets/e-gui-utils.h>
-#include <gal/widgets/e-cursors.h>
-
-#include "e-util/e-passwords.h"
-#include "e-util/e-proxy.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;
-
- /* used to make elfence work */
- free(malloc (10));
-#ifdef DO_MCHECK
- /*mtrace();*/
- mcheck(blowup);
-#endif
- bindtextdomain (PACKAGE, EVOLUTION_LOCALEDIR);
- textdomain (PACKAGE);
-
- g_thread_init (NULL);
-
- gnome_init_with_popt_table ("evolution-mail-component", VERSION,
- argc, argv, bonobo_activation_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);
-
- sa.sa_handler = SIG_IGN;
- sigaction (SIGXFSZ, &sa, NULL);
- gnome_segv_handler = osa.sa_handler;
- g_static_mutex_lock (&segv_mutex);
- }
-
- if (!bonobo_init (&argc, argv)) {
- 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 Bonobo Activation.");
- }
-
- gconf_init (argc, argv, NULL);
-
- glade_gnome_init ();
-
- gnome_vfs_init ();
-
- e_cursors_init ();
-
- e_proxy_init ();
-
- mail_config_init ();
- mail_msg_init ();
-
- gnome_sound_init ("localhost");
-
- component_factory_init ();
- evolution_composer_factory_init (composer_send_cb, composer_save_draft_cb);
-
- if (gdk_threads_mutex) {
- g_mutex_free (gdk_threads_mutex);
- gdk_threads_mutex = NULL;
- }
-
- g_print ("Evolution Mail ready and running.\n");
-
- GDK_THREADS_ENTER ();
- bonobo_main ();
-
- mail_msg_cleanup();
-
- GDK_THREADS_LEAVE ();
-
- mail_config_write_on_exit ();
-
- e_passwords_shutdown ();
-
- gnome_sound_shutdown ();
-
- return 0;
-}