From b8f0067758d1710e580f55f60ab70cd073f7fa79 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Jan=20Dj=C3=A4rv?= Date: Sun, 13 Dec 2009 14:24:22 +0000 Subject: [PATCH] Work around warning about g_set_prgname() called multiple times. * xterm.c (my_log_handler): New function. (x_term_init): Set my_log_handler as log handler during gtk_init so we can filter out buggy messages. (bug #5120). --- src/ChangeLog | 4 ++++ src/xterm.c | 20 +++++++++++++++++++- 2 files changed, 23 insertions(+), 1 deletion(-) diff --git a/src/ChangeLog b/src/ChangeLog index bf71cc3ea32..692db938e61 100644 --- a/src/ChangeLog +++ b/src/ChangeLog @@ -1,5 +1,9 @@ 2009-12-13 Jan Djärv + * xterm.c (my_log_handler): New function. + (x_term_init): Set my_log_handler as log handler during gtk_init + so we can filter out buggy messages. (bug #5120). + * xterm.c (xg_scroll_callback): Parameter list changed, use parameter GtkScrollType to determine scroll/line/page. Only allow dragging if a button < 4 is grabbed (bug #5177). diff --git a/src/xterm.c b/src/xterm.c index 231275ea205..dee6190e755 100644 --- a/src/xterm.c +++ b/src/xterm.c @@ -10020,6 +10020,19 @@ x_display_ok (display) return dpy_ok; } +#ifdef USE_GTK +static void +my_log_handler (log_domain, log_level, message, user_data) + const gchar *log_domain; + GLogLevelFlags log_level; + const gchar *message; + gpointer user_data; +{ + if (!strstr (message, "g_set_prgname")) + fprintf (stderr, "%s-WARNING **: %s\n", log_domain, message); +} +#endif + /* Open a connection to X display DISPLAY_NAME, and return the structure that describes the open display. If we cannot contact the display, return null. */ @@ -10054,7 +10067,7 @@ x_term_init (display_name, xrm_option, resource_name) char *argv[NUM_ARGV]; char **argv2 = argv; GdkAtom atom; - + guint id; #ifndef HAVE_GTK_MULTIDISPLAY if (!EQ (Vinitial_window_system, Qx)) error ("Sorry, you cannot connect to X servers with the GTK toolkit"); @@ -10089,7 +10102,12 @@ x_term_init (display_name, xrm_option, resource_name) XSetLocaleModifiers (""); + /* Work around GLib bug that outputs a faulty warning. See + https://bugzilla.gnome.org/show_bug.cgi?id=563627. */ + id = g_log_set_handler ("GLib", G_LOG_LEVEL_WARNING | G_LOG_FLAG_FATAL + | G_LOG_FLAG_RECURSION, my_log_handler, NULL); gtk_init (&argc, &argv2); + g_log_remove_handler ("GLib", id); /* gtk_init does set_locale. We must fix locale after calling it. */ fixup_locale (); -- 2.39.2