diff -r 000000000000 -r d0f3a028347a telepathygabble/src/debug.c --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/telepathygabble/src/debug.c Tue Feb 02 01:10:06 2010 +0200 @@ -0,0 +1,130 @@ +/* + * debug.c + * Copyright (C) 2006 Collabora Ltd. + * + * This library is free software; you can redistribute it and/or + * modify it under the terms of the GNU Lesser General Public + * License as published by the Free Software Foundation; either + * version 2.1 of the License, or (at your option) any later version. + * + * This library 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 + * Lesser General Public License for more details. + * + * You should have received a copy of the GNU Lesser General Public + * License along with this library; if not, write to the Free Software + * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA + */ +#include +#include // bsr +#include + +#include "debug.h" + +/*#ifdef ENABLE_DEBUG*/ + +#ifdef EMULATOR +#include "libgabble_wsd_solution.h" + + GET_STATIC_VAR_FROM_TLS(flags,gabble_debug,GabbleDebugFlags) + #define flags (*GET_WSD_VAR_NAME(flags,gabble_debug,s)()) + + GET_STATIC_VAR_FROM_TLS(log_handler,gabble_debug,guint) + #define log_handler (*GET_WSD_VAR_NAME(log_handler,gabble_debug,s)()) + + GET_STATIC_ARRAY_FROM_TLS(keys,gabble_debug,GDebugKey) + #define keys (GET_WSD_VAR_NAME(keys,gabble_debug, s)()) + + +#else + static GabbleDebugFlags flags = 0; + static guint log_handler; // bsr + GDebugKey keys[] = { + { "presence", GABBLE_DEBUG_PRESENCE }, + { "groups", GABBLE_DEBUG_GROUPS }, + { "roster", GABBLE_DEBUG_ROSTER }, + { "disco", GABBLE_DEBUG_DISCO }, + { "properties", GABBLE_DEBUG_PROPERTIES }, + { "roomlist", GABBLE_DEBUG_ROOMLIST }, + { "media-channel", GABBLE_DEBUG_MEDIA }, + { "muc", GABBLE_DEBUG_MUC }, + { "connection", GABBLE_DEBUG_CONNECTION }, + { "persist", GABBLE_DEBUG_PERSIST }, + { "vcard", GABBLE_DEBUG_VCARD }, + { 0, }, +}; + + +#endif + +/* bsr added new */ +static void +debug_log_handler1 (const gchar *log_domain, + GLogLevelFlags log_level, + const gchar *message, + gpointer user_data) +{ + #ifdef _DEBUG + + FILE* fp; + + fp = fopen("c:\\gabblelogs.txt","a"); + if(fp) + { + fprintf(fp,message); + fprintf(fp,"\n"); + fclose(fp); + } + #endif //_DEBUG +} + +#ifdef SYMBIAN +EXPORT_C +#endif +void gabble_debug_set_flags_from_env () +{ + guint nkeys; + const gchar *flags_string; + + for (nkeys = 0; keys[nkeys].value; nkeys++); + + flags_string = g_getenv ("GABBLE_DEBUG"); + + if (flags_string) + gabble_debug_set_flags (g_parse_debug_string (flags_string, keys, nkeys)); + + // bsr + log_handler = g_log_set_handler (NULL, 0xFF, + debug_log_handler1, NULL); +} + +#ifdef SYMBIAN +EXPORT_C +#endif +void gabble_debug_set_flags (GabbleDebugFlags new_flags) +{ + flags |= new_flags; +} + + +gboolean gabble_debug_flag_is_set (GabbleDebugFlags flag) +{ + return flag & flags; +} + +void gabble_debug (GabbleDebugFlags flag, + const gchar *format, + ...) +{ + if (flag & flags) + { + va_list args; + va_start (args, format); + g_logv (G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG, format, args); + va_end (args); + } +} + +/*#endif /* ENABLE_DEBUG */ +