annotate xwrited-debug.c @ 1:0907cc7064d4

Add support for newer glib versions Do not call g_type_init() in glib >= 2.35 where it has been deprecated. glib >= 2.32 only shows debug messages if the G_MESSAGES_DEBUG environment variable contains the log domain or "all", so add the log domain to G_MESSAGES_DEBUG if necessary if the "-d" commandline option was specified.
author Guido Berhoerster <guido+xwrited@berhoerster.name>
date Sun, 27 Apr 2014 23:12:06 +0200
parents 52694b49dcc4
children 4a5330979433
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
0
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
1 /*
1
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
2 * Copyright (C) 2014 Guido Berhoerster <guido+xwrited@berhoerster.name>
0
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
3 *
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
4 * Permission is hereby granted, free of charge, to any person obtaining
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
5 * a copy of this software and associated documentation files (the
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
6 * "Software"), to deal in the Software without restriction, including
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
7 * without limitation the rights to use, copy, modify, merge, publish,
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
8 * distribute, sublicense, and/or sell copies of the Software, and to
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
9 * permit persons to whom the Software is furnished to do so, subject to
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
10 * the following conditions:
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
11 *
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
12 * The above copyright notice and this permission notice shall be included
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
13 * in all copies or substantial portions of the Software.
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
14 *
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
19 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
20 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
21 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
22 */
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
23
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
24 #define _XOPEN_SOURCE 600
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
25
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
26 #include <string.h>
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
27 #include <stdarg.h>
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
28 #include <glib.h>
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
29
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
30 #include "xwrited-debug.h"
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
31
1
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
32 #if !GLIB_CHECK_VERSION(2, 32, 0)
0
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
33 static void
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
34 dummy_log_handler(const gchar *log_domain, GLogLevelFlags log_level,
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
35 const gchar *message, gpointer data)
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
36 {
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
37 /* drop all messages */
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
38 }
1
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
39 #endif /* !GLIB_CHECK_VERSION (2,32,0) */
0
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
40
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
41 void
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
42 xwrited_debug_init(gboolean debug_mode)
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
43 {
1
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
44 /*
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
45 * glib >= 2.32 only shows debug messages if the G_MESSAGES_DEBUG
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
46 * environment variable contains the log domain or "all", earlier glib
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
47 * version always show debugging output
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
48 */
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
49 #if GLIB_CHECK_VERSION(2, 32, 0)
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
50 const gchar *debug_env;
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
51 gchar *debug_env_new;
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
52
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
53 if (debug_mode) {
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
54 debug_env = g_getenv("G_MESSAGES_DEBUG");
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
55
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
56 if (debug_env == NULL) {
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
57 g_setenv("G_MESSAGES_DEBUG", G_LOG_DOMAIN, TRUE);
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
58 } else if (strstr(debug_env, G_LOG_DOMAIN) == NULL) {
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
59 debug_env_new = g_strdup_printf("%s %s", debug_env,
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
60 G_LOG_DOMAIN);
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
61 g_setenv("G_MESSAGES_DEBUG", debug_env_new, TRUE);
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
62 g_free(debug_env_new);
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
63 }
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
64 }
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
65 #else
0
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
66 if (!debug_mode) {
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
67 g_log_set_handler(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
68 dummy_log_handler, NULL);
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
69 }
1
0907cc7064d4 Add support for newer glib versions
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents: 0
diff changeset
70 #endif /* GLIB_CHECK_VERSION (2,32,0) */
0
52694b49dcc4 Initial revision
Guido Berhoerster <guido+xwrited@berhoerster.name>
parents:
diff changeset
71 }