/*
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
- * Copyright (C) 1999-2002 Hiroyuki Yamamoto
+ * Copyright (C) 1999-2003 Hiroyuki Yamamoto
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
#include "utils.h"
#include "gtkutils.h"
#include "log.h"
+#include "prefs_toolbar.h"
#if USE_GPGME
# include "rfc2015.h"
ONLINE_MODE_OFFLINE
} OnlineMode;
-
-static struct Cmd {
+static struct RemoteCmd {
gboolean receive;
gboolean receive_all;
gboolean compose;
static gint prohibit_duplicate_launch (void);
static gchar * get_crashfile_name (void);
+static gint lock_socket_remove (void);
static void lock_socket_input_cb (gpointer data,
gint source,
GdkInputCondition condition);
parse_cmd_opt(argc, argv);
+#ifdef CRASH_DIALOG
+ if (cmd.crash) {
+ gtk_set_locale();
+ gtk_init(&argc, &argv);
+ crash_main(cmd.crash_params);
+ return 0;
+ }
+ crash_install_handlers();
+#endif
+
/* check and create unix domain socket */
lock_socket = prohibit_duplicate_launch();
if (lock_socket < 0) return 0;
if (cmd.status) {
puts("0 Sylpheed not running.");
+ lock_socket_remove();
return 0;
}
gtk_set_locale();
gtk_init(&argc, &argv);
-#ifdef CRASH_DIALOG
- if (cmd.crash) {
- crash_main(cmd.crash_params);
- return 0;
- }
- crash_install_handlers();
-#endif
-
#if USE_THREADS || USE_LDAP
g_thread_init(NULL);
if (!g_thread_supported())
main_window_toggle_work_offline(mainwin, TRUE);
if (cmd.online_mode == ONLINE_MODE_ONLINE)
main_window_toggle_work_offline(mainwin, FALSE);
+
+ prefs_toolbar_init();
static_mainwindow = mainwin;
gtk_main();
+ prefs_toolbar_done();
+
addressbook_destroy();
#if USE_ASPELL
gtkaspell_checkers_delete();
#endif
+ sylpheed_done();
return 0;
}
gint i;
for (i = 1; i < argc; i++) {
- if (!strncmp(argv[i], "--debug", 7))
- debug_set_mode(TRUE);
- else if (!strncmp(argv[i], "--receive-all", 13))
+ if (!strncmp(argv[i], "--receive-all", 13))
cmd.receive_all = TRUE;
else if (!strncmp(argv[i], "--receive", 9))
cmd.receive = TRUE;
close_log_file();
- /* delete unix domain socket */
- gdk_input_remove(lock_socket_tag);
- fd_close(lock_socket);
- filename = get_socket_name();
- unlink(filename);
-
/* delete crashfile */
if (!cmd.crash)
unlink(get_crashfile_name());
-#if USE_OPENSSL
- ssl_done();
-#endif
+ lock_socket_remove();
gtk_main_quit();
}
return -1;
}
+static gint lock_socket_remove(void)
+{
+ gchar *filename;
+
+ if (lock_socket < 0) return -1;
+
+ if (lock_socket_tag > 0)
+ gdk_input_remove(lock_socket_tag);
+ fd_close(lock_socket);
+ filename = get_socket_name();
+ unlink(filename);
+
+ return 0;
+}
+
static void lock_socket_input_cb(gpointer data,
gint source,
GdkInputCondition condition)
if (procmsg_send_queue
(folder->queue, prefs_common.savemsg) < 0)
alertpanel_error(_("Some errors occurred while sending queued messages."));
- statusbar_pop_all();
folder_item_scan(folder->queue);
if (prefs_common.savemsg && folder->outbox) {
- folder_update_item(folder->outbox, TRUE);
if (folder->outbox == def_outbox)
def_outbox = NULL;
}
}
}
-
- if (prefs_common.savemsg && def_outbox)
- folder_update_item(def_outbox, TRUE);
}