From cb281bb3ac8c3a12b7f0dc6787f3e37968ceccda Mon Sep 17 00:00:00 2001 From: John Bailey Date: Sat, 4 Jul 2009 19:01:16 +0000 Subject: Move the handling of PURPLE_UNSAFE_DEBUG to purple_debug_init(). Also add handling for PURPLE_VERBOSE_DEBUG, as Sadrul and I briefly discussed, which we should use instead of requiring building with the --enable-debug configure argument just to get extra output. --- libpurple/debug.c | 42 +++++++++++++++++++++++++++++++++++++++++- libpurple/debug.h | 42 +++++++++++++++++++++++++++++++++++++++++- 2 files changed, 82 insertions(+), 2 deletions(-) diff --git a/libpurple/debug.c b/libpurple/debug.c index 3682c9e708..30b12fdb55 100644 --- a/libpurple/debug.c +++ b/libpurple/debug.c @@ -36,12 +36,20 @@ static PurpleDebugUiOps *debug_ui_ops = NULL; * * It doesn't make sense to make this a normal Purple preference * because it's a command line option. This will always be FALSE, - * unless the user explicitly started Purple with the -d flag. + * unless the user explicitly started the UI with the -d flag. * It doesn't matter what this value was the last time Purple was * started, so it doesn't make sense to save it in prefs. */ static gboolean debug_enabled = FALSE; +/* + * These determine whether verbose or unsafe debugging are desired. I + * don't want to make these purple preferences because their values should + * not be remembered across instances of the UI. + */ +static gboolean debug_verbose = FALSE; +static gboolean debug_unsafe = FALSE; + static void purple_debug_vargs(PurpleDebugLevel level, const char *category, const char *format, va_list args) @@ -175,6 +183,30 @@ purple_debug_set_ui_ops(PurpleDebugUiOps *ops) debug_ui_ops = ops; } +gboolean +purple_debug_is_verbose() +{ + return debug_verbose; +} + +void +purple_debug_set_verbose(gboolean verbose) +{ + debug_verbose = verbose; +} + +gboolean +purple_debug_is_unsafe() +{ + return debug_unsafe; +} + +void +purple_debug_set_unsafe(gboolean unsafe) +{ + debug_unsafe = unsafe; +} + PurpleDebugUiOps * purple_debug_get_ui_ops(void) { @@ -184,6 +216,13 @@ purple_debug_get_ui_ops(void) void purple_debug_init(void) { + /* Read environment variables once per init */ + if(g_getenv("PURPLE_UNSAFE_DEBUG")) + purple_debug_set_unsafe(TRUE); + + if(g_getenv("PURPLE_VERBOSE_DEBUG")) + purple_debug_set_verbose(TRUE); + purple_prefs_add_none("/purple/debug"); /* @@ -193,3 +232,4 @@ purple_debug_init(void) */ purple_prefs_add_bool("/purple/debug/timestamps", TRUE); } + diff --git a/libpurple/debug.h b/libpurple/debug.h index 682b4e464a..67dd91ce7b 100644 --- a/libpurple/debug.h +++ b/libpurple/debug.h @@ -151,10 +151,50 @@ void purple_debug_set_enabled(gboolean enabled); /** * Check if console debug output is enabled. * - * @return TRUE if debuggin is enabled, FALSE if it is not. + * @return TRUE if debugging is enabled, FALSE if it is not. */ gboolean purple_debug_is_enabled(void); +/** + * Enable or disable verbose debugging. This ordinarily should only be called + * by #purple_debug_init, but there are cases where this can be useful for + * plugins. + * + * @param verbose TRUE to enable verbose debugging or FALSE to disable it. + * + * @since 2.6.0 + */ +void purple_debug_set_verbose(gboolean verbose); + +/** + * Check if verbose logging is enabled. + * + * @return TRUE if verbose debugging is enabled, FALSE if it is not. + * + * @since 2.6.0 + */ +gboolean purple_debug_is_verbose(void); + +/** + * Enable or disable verbose debugging. This ordinarily should only be called + * by #purple_debug_init, but there are cases where this can be useful for + * plugins. + * + * @param unsafe TRUE to enable verbose debugging or FALSE to disable it. + * + * @since 2.6.0 + */ +void purple_debug_set_unsafe(gboolean unsafe); + +/** + * Check if unsafe debugging is enabled. + * + * @return TRUE if verbose debugging is enabled, FALSE if it is not. + * + * @since 2.6.0 + */ +gboolean purple_debug_is_unsafe(void); + /*@}*/ /**************************************************************************/ -- cgit v1.2.1