Otherwise, some logging is printed during Purple initialization, which is not what we want for a console application.
Testing Done:
Ran finch, and saw no output before the terminal changed to alternate mode (or whatever it's called), and opened/closed the Debug Window.
Reviewed at https://reviews.imfreedom.org/r/1073/
/* purple
*
* Purple 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., 51 Franklin Street, Fifth Floor, Boston, MA 02111-1301 USA
*/
#include<glib/gi18n-lib.h>
#include"internal.h"
#include"debug.h"
#include"idle.h"
#include"notify.h"
#include"purplemarkup.h"
#include"savedstatuses.h"
#include"request.h"
#include"status.h"
#include"xmlnode.h"
/*
* The maximum number of transient statuses to save. This
* is used during the shutdown process to clean out old
* transient statuses.
*/
#define MAX_TRANSIENTS 5
/*
* The default message to use when the user becomes auto-away.
*/
#define DEFAULT_AUTOAWAY_MESSAGE _("I'm not here right now")
/*
* The information stores a snap-shot of the statuses of all
* your accounts. Basically these are your saved away messages.
* There is an overall status and message that applies to
* all your accounts, and then each individual account can
* optionally have a different custom status and message.
*
* The changes to status.xml caused by the new status API
* are fully backward compatible. The new status API just
* adds the optional sub-statuses to the XML file.
*/
struct_PurpleSavedStatus
{
char*title;
PurpleStatusPrimitivetype;
char*message;
/* The timestamp when this saved status was created. This must be unique. */
time_tcreation_time;
time_tlastused;
unsignedintusage_count;
GList*substatuses;/* A list of PurpleSavedStatusSub's. */
};
/*
* TODO: If a PurpleStatusType is deleted, need to also delete any
* associated PurpleSavedStatusSub's?
*/
struct_PurpleSavedStatusSub
{
PurpleAccount*account;
constPurpleStatusType*type;
char*message;
};
staticGList*saved_statuses=NULL;
staticguintsave_timer=0;
staticgbooleanstatuses_loaded=FALSE;
/*
* This hash table keeps track of which timestamps we've
* used so that we don't have two saved statuses with the
* same 'creation_time' timestamp. The 'created' timestamp
* is used as a unique identifier.
*
* So the key in this hash table is the creation_time and
* the value is a pointer to the PurpleSavedStatus.