comparison xia-debug.c @ 0:9a16bf50daba

Initial revision
author Guido Berhoerster <guido+xinhibit-applet@berhoerster.name>
date Sat, 27 Apr 2013 00:33:11 +0200
parents
children a47449b807b2
comparison
equal deleted inserted replaced
-1:000000000000 0:9a16bf50daba
1 /*
2 * Copyright (C) 2013 Guido Berhoerster <guido+xinhibit-applet@berhoerster.name>
3 *
4 * Permission is hereby granted, free of charge, to any person obtaining
5 * a copy of this software and associated documentation files (the
6 * "Software"), to deal in the Software without restriction, including
7 * without limitation the rights to use, copy, modify, merge, publish,
8 * distribute, sublicense, and/or sell copies of the Software, and to
9 * permit persons to whom the Software is furnished to do so, subject to
10 * the following conditions:
11 *
12 * The above copyright notice and this permission notice shall be included
13 * in all copies or substantial portions of the Software.
14 *
15 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
16 * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
17 * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
18 * IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
19 * CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
20 * TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
21 * SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
22 */
23
24 #include <string.h>
25 #include <stdarg.h>
26 #include <glib.h>
27
28 #include "xia-debug.h"
29
30 static void
31 dummy_log_handler(const gchar *log_domain, GLogLevelFlags log_level,
32 const gchar *message, gpointer data)
33 {
34 /* Swallow all messages */
35 }
36
37 void
38 xia_debug_init(gboolean debug_mode)
39 {
40 /*
41 * glib >= 2.32 only shows debug messages if G_MESSAGES_DEBUG contains
42 * the log domain or "all", earlier glib version always show debugging
43 * output
44 */
45 #if GLIB_CHECK_VERSION(2, 32, 0)
46 const gchar *debug_env;
47 gchar *debug_env_new;
48
49 if (debug_mode) {
50 debug_env = g_getenv("G_MESSAGES_DEBUG");
51
52 if (debug_env == NULL) {
53 g_setenv("G_MESSAGES_DEBUG", G_LOG_DOMAIN, TRUE);
54 } else if (strstr(debug_env, G_LOG_DOMAIN) == NULL) {
55 debug_env_new = g_strdup_printf("%s %s", debug_env,
56 G_LOG_DOMAIN);
57 g_setenv("G_MESSAGES_DEBUG", debug_env_new, TRUE);
58 g_free(debug_env_new);
59 }
60 }
61 #else
62 if (!debug_mode) {
63 g_log_set_handler(G_LOG_DOMAIN, G_LOG_LEVEL_DEBUG,
64 dummy_log_handler, NULL);
65 }
66 #endif /* GLIB_CHECK_VERSION (2,32,0) */
67 }