Mercurial > projects > xinhibit-applet
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 } |