--- a/libpurple/meson.build Sun Nov 01 03:33:09 2020 -0600
+++ b/libpurple/meson.build Sun Nov 01 04:47:52 2020 -0600
@@ -271,7 +271,7 @@
purple_coresources + purple_builtsources +
- c_args : ['-DPURPLE_COMPILATION'],
+ c_args : ['-DPURPLE_COMPILATION', '-DG_LOG_DOMAIN="Purple"'], include_directories : [toplevel_inc, libpurple_inc],
version : PURPLE_LIB_VERSION,
--- a/meson.build Sun Nov 01 03:33:09 2020 -0600
+++ b/meson.build Sun Nov 01 04:47:52 2020 -0600
@@ -545,14 +545,6 @@
pidginpath = find_program('pidgin', required : false)
-if get_option('glib-errors-trace')
- if compiler.get_id() == 'clang'
- error('--enable-glib-errors-trace doesn\'t work with clang')
- conf.set('ENABLE_GLIBTRACE', true)
- add_project_arguments('-rdynamic', language : 'c')
#######################################################################
# Check for Unity and Messaging Menu
# Remove when Ubuntu 16.04 is EOL
--- a/meson_options.txt Sun Nov 01 03:33:09 2020 -0600
+++ b/meson_options.txt Sun Nov 01 04:47:52 2020 -0600
@@ -7,9 +7,6 @@
option('extraversion', type : 'string',
description : 'extra version number to be displayed in Help->About and --help (for packagers)')
-option('glib-errors-trace', type : 'boolean', value : false,
- description : 'print backtraces for glib errors')
option('introspection', type : 'boolean', value : true,
description : 'build introspection data')
--- a/pidgin/meson.build Sun Nov 01 03:33:09 2020 -0600
+++ b/pidgin/meson.build Sun Nov 01 04:47:52 2020 -0600
@@ -211,7 +211,7 @@
libpidgin = shared_library('pidgin3',
- c_args : ['-DPIDGIN_COMPILATION'],
+ c_args : ['-DPIDGIN_COMPILATION', '-DG_LOG_DOMAIN="Pidgin"'], include_directories : [toplevel_inc],
version : PURPLE_LIB_VERSION,
dependencies : _libpidgin_dependencies,
@@ -223,6 +223,7 @@
pidgin = executable('pidgin3',
+ c_args : ['-DPIDGIN_COMPILATION', '-DG_LOG_DOMAIN="Pidgin"'], include_directories : toplevel_inc,
dependencies : IS_WIN32 ? [] : [libpurple_dep, libpidgin_dep],
--- a/pidgin/pidgindebug.c Sun Nov 01 03:33:09 2020 -0600
+++ b/pidgin/pidgindebug.c Sun Nov 01 04:47:52 2020 -0600
@@ -36,10 +36,6 @@
#include <gdk/gdkkeysyms.h>
#include "pidginresources.h"
@@ -592,7 +588,7 @@
width = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/debug/width");
height = purple_prefs_get_int(PIDGIN_PREFS_ROOT "/debug/height");
- purple_debug_info("gtkdebug", "Setting dimensions to %d, %d\n",
+ purple_debug_info("pidgindebug", "Setting dimensions to %d, %d\n", gtk_window_set_default_size(GTK_WINDOW(win), width, height);
@@ -710,68 +706,43 @@
-pidgin_glib_log_handler(const gchar *domain, GLogLevelFlags flags,
- const gchar *msg, gpointer user_data)
+pidgin_debug_g_log_handler(const gchar *domain, GLogLevelFlags flags, + const gchar *msg, gpointer user_data)
- char *new_domain = NULL;
+ GString *category = g_string_new("GLog-"); - if ((flags & G_LOG_LEVEL_ERROR) == G_LOG_LEVEL_ERROR)
- level = PURPLE_DEBUG_ERROR;
- else if ((flags & G_LOG_LEVEL_CRITICAL) == G_LOG_LEVEL_CRITICAL)
- level = PURPLE_DEBUG_FATAL;
- else if ((flags & G_LOG_LEVEL_WARNING) == G_LOG_LEVEL_WARNING)
- level = PURPLE_DEBUG_WARNING;
- else if ((flags & G_LOG_LEVEL_MESSAGE) == G_LOG_LEVEL_MESSAGE)
- level = PURPLE_DEBUG_INFO;
- else if ((flags & G_LOG_LEVEL_INFO) == G_LOG_LEVEL_INFO)
- level = PURPLE_DEBUG_INFO;
- else if ((flags & G_LOG_LEVEL_DEBUG) == G_LOG_LEVEL_DEBUG)
- level = PURPLE_DEBUG_MISC;
- purple_debug_warning("gtkdebug",
- "Unknown glib logging level in %d\n", flags);
- level = PURPLE_DEBUG_MISC; /* This will never happen. */
+ g_string_append_printf(category, "%s-", domain);
- new_msg = purple_utf8_try_convert(msg);
- new_domain = purple_utf8_try_convert(domain);
- bt_size = backtrace(bt_buff, 20);
- fprintf(stderr, "\nBacktrace for \"%s\" (%s):\n", new_msg,
- new_domain != NULL ? new_domain : "g_log");
- backtrace_symbols_fd(bt_buff, bt_size, STDERR_FILENO);
- purple_debug(level, (new_domain != NULL ? new_domain : "g_log"),
+ if((flags & G_LOG_LEVEL_ERROR) != 0) { + g_string_append(category, "Error"); + level = PURPLE_DEBUG_ERROR; + } else if((flags & G_LOG_LEVEL_CRITICAL) != 0) { + g_string_append(category, "Fatal"); + level = PURPLE_DEBUG_FATAL; + } else if((flags & G_LOG_LEVEL_WARNING) != 0) { + g_string_append(category, "Warning"); + level = PURPLE_DEBUG_WARNING; + } else if((flags & G_LOG_LEVEL_MESSAGE) != 0) { + g_string_append(category, "Message"); + level = PURPLE_DEBUG_INFO; + } else if((flags & G_LOG_LEVEL_INFO) != 0) { + g_string_append(category, "Info"); + level = PURPLE_DEBUG_INFO; + } else if((flags & G_LOG_LEVEL_DEBUG) != 0) { + g_string_append(category, "Debug"); + level = PURPLE_DEBUG_MISC; + g_string_append(category, "Unknown"); + level = PURPLE_DEBUG_MISC;
+ purple_debug(level, category->str, "%s\n", msg); + g_string_free(category, TRUE);
-pidgin_glib_dummy_print_handler(const gchar *string)
pidgin_debug_ui_init(PidginDebugUi *self)
@@ -803,32 +774,7 @@
purple_prefs_connect_callback(NULL, PIDGIN_PREFS_ROOT "/debug/enabled",
-#define REGISTER_G_LOG_HANDLER(name) \
- g_log_set_handler((name), G_LOG_LEVEL_MASK | G_LOG_FLAG_FATAL \
- | G_LOG_FLAG_RECURSION, \
- pidgin_glib_log_handler, NULL)
- /* Register the glib/gtk log handlers. */
- REGISTER_G_LOG_HANDLER(NULL);
- REGISTER_G_LOG_HANDLER("Gdk");
- REGISTER_G_LOG_HANDLER("GdkPixbuf");
- REGISTER_G_LOG_HANDLER("GLib");
- REGISTER_G_LOG_HANDLER("GLib-GObject");
- REGISTER_G_LOG_HANDLER("GModule");
- REGISTER_G_LOG_HANDLER("Gnt"); /* just in case we find a gnt plugin */
- REGISTER_G_LOG_HANDLER("GPlugin");
- REGISTER_G_LOG_HANDLER("GPluginGtk");
- REGISTER_G_LOG_HANDLER("GThread");
- REGISTER_G_LOG_HANDLER("Gtk");
- REGISTER_G_LOG_HANDLER("Json");
- REGISTER_G_LOG_HANDLER("libsoup");
- REGISTER_G_LOG_HANDLER("Talkatu");
- REGISTER_G_LOG_HANDLER("GStreamer");
- if (!purple_debug_is_enabled())
- g_set_print_handler(pidgin_glib_dummy_print_handler);
+ g_log_set_default_handler(pidgin_debug_g_log_handler, NULL);