I've been holding off working around this crash in the hope that I'd be
able to reproduce it and track down the real problem. I didn't manage to,
and if we're releasing soonish it's probably best to try and avoid crashing.
/*
* gaim
*
* Gaim is the legal property of its developers, whose names are too numerous
* to list here. Please refer to the COPYRIGHT file distributed with this
* source distribution.
*
* 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
*
*/
#include"internal.h"
#include"gtkgaim.h"
#include"account.h"
#include"conversation.h"
#include"core.h"
#include"debug.h"
#include"eventloop.h"
#include"ft.h"
#include"log.h"
#include"notify.h"
#include"prefs.h"
#include"prpl.h"
#include"pounce.h"
#include"sound.h"
#include"status.h"
#include"util.h"
#include"gtkaccount.h"
#include"gtkblist.h"
#include"gtkconn.h"
#include"gtkconv.h"
#include"gtkdebug.h"
#include"gtkdialogs.h"
#include"gtkeventloop.h"
#include"gtkft.h"
#include"gtknotify.h"
#include"gtkplugin.h"
#include"gtkpounce.h"
#include"gtkprefs.h"
#include"gtkprivacy.h"
#include"gtkrequest.h"
#include"gtkroomlist.h"
#include"gtksound.h"
#include"gtkutils.h"
#include"stock.h"
#if HAVE_SIGNAL_H
#include<signal.h>
#endif
#include<getopt.h>
#ifdef HAVE_STARTUP_NOTIFICATION
# define SN_API_NOT_YET_FROZEN
#include<libsn/sn-launchee.h>
#include<gdk/gdkx.h>
#endif
staticGtkWidget*name;
staticGtkWidget*pass;
#ifdef HAVE_STARTUP_NOTIFICATION
staticSnLauncheeContext*sn_context=NULL;
staticSnDisplay*sn_display=NULL;
#endif
GtkWidget*mainwindow=NULL;
intopt_away=0;
intdocklet_count=0;
char*opt_away_arg=NULL;
intopt_debug=0;
#if HAVE_SIGNAL_H
/*
* Lists of signals we wish to catch and those we wish to ignore.
* Each list terminated with -1
*/
staticintcatch_sig_list[]={
SIGSEGV,
SIGHUP,
SIGINT,
SIGTERM,
SIGQUIT,
SIGCHLD,
-1
};
staticintignore_sig_list[]={
SIGPIPE,
-1
};
#endif
staticguintsnd_tmout=0;
staticgbooleansound_timeout(gpointerdata)
{
gaim_gtk_sound_set_login_mute(FALSE);
snd_tmout=0;
returnFALSE;
}
/* we need to do this for Oscar because serv_login only starts the login
* process, it doesn't end there. gaim_setup will be called later from
* oscar.c, after the buddy list is made and serv_finish_login is called */
gaim_notify_error(NULL,NULL,_("Unable to load preferences"),_("Gaim was not able to load your preferences because they are stored in an old format that is no longer used. Please reconfigure your settings using the Preferences window."));