3e234d4879
* AUTHORS * Makefile.am * autogen.sh * configure.ac * config/mkinstalldirs * intl/.cvsignore * intl/ChangeLog * intl/VERSION * intl/bindtextdom.c * intl/config.charset * intl/dcgettext.c * intl/dcigettext.c * intl/dcngettext.c * intl/dgettext.c * intl/dngettext.c * intl/eval-plural.h * intl/explodename.c * intl/finddomain.c * intl/gettext.c * intl/gettextP.h * intl/gmo.h * intl/hash-string.h * intl/intl-compat.c * intl/l10nflist.c * intl/libgnuintl.h.in * intl/loadinfo.h * intl/loadmsgcat.c * intl/localcharset.c * intl/localcharset.h * intl/locale.alias * intl/localealias.c * intl/localename.c * intl/log.c * intl/ngettext.c * intl/os2compat.c * intl/os2compat.h * intl/osdep.c * intl/plural-exp.c * intl/plural-exp.h * intl/plural.c * intl/plural.y * intl/ref-add.sin * intl/ref-del.sin * intl/relocatable.c * intl/relocatable.h * intl/textdomain.c * m4/Makefile.am * po/Makefile.in.in * src/Makefile.am * src/account.c * src/action.c * src/addr_compl.c * src/addressadd.c * src/addressbook.c * src/addrgather.c * src/addrindex.c * src/alertpanel.c * src/browseldap.c * src/codeconv.c * src/codeconv.h * src/compose.c * src/compose.h * src/crash.c * src/editaddress.c * src/editbook.c * src/editgroup.c * src/editjpilot.c * src/editldap.c * src/editldap_basedn.c * src/editvcard.c * src/exphtmldlg.c * src/expldifdlg.c * src/export.c * src/exporthtml.c * src/filtering.c * src/folder.c * src/folder_item_prefs.c * src/foldersel.c * src/folderview.c * src/grouplistdialog.c * src/headerview.c * src/imap.c * src/imap_gtk.c * src/import.c * src/importldif.c * src/importmutt.c * src/importpine.c * src/inc.c * src/ldif.c * src/main.c * src/mainwindow.c * src/matcher.c * src/mbox.c * src/message_search.c * src/messageview.c * src/mh.c * src/mh_gtk.c * src/mimeview.c * src/msgcache.c * src/news.c * src/news_gtk.c * src/noticeview.c * src/partial_download.c * src/pop.c * src/prefs_account.c * src/prefs_actions.c * src/prefs_common.c * src/prefs_customheader.c * src/prefs_display_header.c * src/prefs_ext_prog.c * src/prefs_filtering.c * src/prefs_filtering_action.c * src/prefs_folder_item.c * src/prefs_fonts.c * src/prefs_gtk.c * src/prefs_matcher.c * src/prefs_msg_colors.c * src/prefs_spelling.c * src/prefs_summary_column.c * src/prefs_template.c * src/prefs_themes.c * src/prefs_toolbar.c * src/prefs_wrapping.c * src/privacy.c * src/procheader.c * src/procmime.c * src/procmsg.c * src/quote_fmt.c * src/recv.c * src/send_message.c * src/setup.c * src/sourcewindow.c * src/ssl_manager.c * src/statusbar.c * src/summary_search.c * src/summaryview.c * src/textview.c * src/toolbar.c * src/wizard.c * src/common/nntp.c * src/common/plugin.c * src/common/smtp.c * src/common/ssl.c * src/common/ssl_certificate.c * src/common/string_match.c * src/common/sylpheed.c * src/common/template.c * src/common/utils.c * src/gtk/about.c * src/gtk/colorlabel.c * src/gtk/description_window.c * src/gtk/filesel.c * src/gtk/foldersort.c * src/gtk/gtkaspell.c * src/gtk/gtkutils.c * src/gtk/inputdialog.c * src/gtk/logwindow.c * src/gtk/menu.c * src/gtk/pluginwindow.c * src/gtk/prefswindow.c * src/gtk/progressdialog.c * src/gtk/quicksearch.c * src/gtk/sslcertwindow.c * src/plugins/clamav/clamav_plugin.c * src/plugins/clamav/clamav_plugin_gtk.c * src/plugins/demo/demo.c * src/plugins/dillo_viewer/dillo_prefs.c * src/plugins/dillo_viewer/dillo_viewer.c * src/plugins/image_viewer/plugin.c * src/plugins/image_viewer/viewer.c * src/plugins/image_viewer/viewerprefs.c * src/plugins/mathml_viewer/mathml_viewer.c * src/plugins/pgpmime/passphrase.c * src/plugins/pgpmime/plugin.c * src/plugins/pgpmime/prefs_gpg.c * src/plugins/pgpmime/select-keys.c * src/plugins/pgpmime/sgpgme.c * src/plugins/spamassassin/spamassassin.c * src/plugins/spamassassin/spamassassin_gtk.c * src/plugins/trayicon/trayicon.c sync with main (revision 104)
152 lines
3.2 KiB
C
152 lines
3.2 KiB
C
/*
|
|
* Sylpheed -- a GTK+ based, lightweight, and fast e-mail client
|
|
* Copyright (C) 1999,2000 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
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program; if not, write to the Free Software
|
|
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
|
*/
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
# include "config.h"
|
|
#endif
|
|
|
|
#include "defs.h"
|
|
#include <stdlib.h>
|
|
#include <glib.h>
|
|
#include <glib/gi18n.h>
|
|
|
|
#if HAVE_LOCALE_H
|
|
# include <locale.h>
|
|
#endif
|
|
|
|
#include "sylpheed.h"
|
|
#include "utils.h"
|
|
#include "ssl.h"
|
|
#include "version.h"
|
|
#include "plugin.h"
|
|
|
|
static gboolean sylpheed_initialized = FALSE;
|
|
static gchar *startup_dir;
|
|
static void (*sylpheed_idle_function)(void) = NULL;
|
|
|
|
/**
|
|
* Parse program parameters and remove all parameters
|
|
* that have been processed. Arguments are pointers to
|
|
* original passed programm arguments and these will
|
|
* be modified leaving only unknown parameters for
|
|
* further processing
|
|
*
|
|
* \param argc pointer to number of parameters
|
|
* \param argv pointer to array of parameter strings
|
|
*/
|
|
static void parse_parameter(int *argc, char ***argv)
|
|
{
|
|
gint i, j, k;
|
|
|
|
g_return_if_fail(argc != NULL);
|
|
g_return_if_fail(argv != NULL);
|
|
|
|
for (i = 1; i < *argc;) {
|
|
if (strcmp("--debug", (*argv)[i]) == 0) {
|
|
debug_set_mode(TRUE);
|
|
|
|
(*argv)[i] = NULL;
|
|
}
|
|
|
|
i += 1;
|
|
}
|
|
|
|
/* Remove NULL args from argv[] for further processing */
|
|
for (i = 1; i < *argc; i++) {
|
|
for (k = i; k < *argc; k++)
|
|
if ((*argv)[k] != NULL)
|
|
break;
|
|
|
|
if (k > i) {
|
|
k -= i;
|
|
for (j = i + k; j < *argc; j++)
|
|
(*argv)[j - k] = (*argv)[j];
|
|
*argc -= k;
|
|
}
|
|
}
|
|
}
|
|
|
|
gboolean sylpheed_init(int *argc, char ***argv)
|
|
{
|
|
if (sylpheed_initialized)
|
|
return TRUE;
|
|
|
|
startup_dir = g_get_current_dir();
|
|
|
|
parse_parameter(argc, argv);
|
|
|
|
debug_print("Starting sylpheed version %08x\n", VERSION_NUMERIC);
|
|
|
|
setlocale(LC_ALL, "");
|
|
bindtextdomain(PACKAGE, LOCALEDIR);
|
|
bind_textdomain_codeset (PACKAGE, "UTF-8");
|
|
textdomain(PACKAGE);
|
|
putenv("G_BROKEN_FILENAMES=1");
|
|
|
|
/* backup if old rc file exists */
|
|
if (is_file_exist(RC_DIR)) {
|
|
if (rename(RC_DIR, RC_DIR ".bak") < 0) {
|
|
FILE_OP_ERROR(RC_DIR, "rename");
|
|
return FALSE;
|
|
}
|
|
}
|
|
|
|
srand((gint) time(NULL));
|
|
|
|
#if USE_OPENSSL
|
|
ssl_init();
|
|
#endif
|
|
|
|
plugin_load_all("Common");
|
|
|
|
sylpheed_initialized = TRUE;
|
|
|
|
return TRUE;
|
|
}
|
|
|
|
void sylpheed_done(void)
|
|
{
|
|
plugin_unload_all("Common");
|
|
|
|
#if USE_OPENSSL
|
|
ssl_done();
|
|
#endif
|
|
}
|
|
|
|
const gchar *sylpheed_get_startup_dir(void)
|
|
{
|
|
return startup_dir;
|
|
}
|
|
|
|
guint sylpheed_get_version(void)
|
|
{
|
|
return VERSION_NUMERIC;
|
|
}
|
|
|
|
void sylpheed_register_idle_function (void (*idle_func)(void))
|
|
{
|
|
sylpheed_idle_function = idle_func;
|
|
}
|
|
|
|
void sylpheed_do_idle(void)
|
|
{
|
|
if (sylpheed_idle_function != NULL)
|
|
sylpheed_idle_function();
|
|
}
|