X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fdebug.c;h=0fceba489d64e90c79178b041830d7e9b1c07f2f;hb=f34b2571b99f40885548fc3ea7c8c5b45ba64335;hp=755fbcd1e3f71a06df565c3905693dfc7bc87332;hpb=fb1627ba903e4b76b80abbdd613f477212968d0a;p=chaz%2Fopenbox diff --git a/openbox/debug.c b/openbox/debug.c index 755fbcd1..0fceba48 100644 --- a/openbox/debug.c +++ b/openbox/debug.c @@ -1,7 +1,7 @@ /* -*- indent-tabs-mode: nil; tab-width: 4; c-basic-offset: 4; -*- debug.c for the Openbox window manager - Copyright (c) 2003 Ben Jansens + Copyright (c) 2003-2007 Dana Jansens This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by @@ -16,6 +16,8 @@ See the COPYING file for a copy of the GNU General Public License. */ +#include "debug.h" + #include #include #include @@ -28,11 +30,47 @@ void ob_debug_show_output(gboolean enable) show = enable; } -void ob_debug(char *a, ...) +void ob_debug(const gchar *a, ...) { va_list vl; if (show) { + fprintf(stderr, "DEBUG: "); + va_start(vl, a); + vfprintf(stderr, a, vl); + va_end(vl); + } +} + +static gboolean enabled_types[OB_DEBUG_TYPE_NUM] = {FALSE}; + +void ob_debug_enable(ObDebugType type, gboolean enable) +{ + g_assert(type < OB_DEBUG_TYPE_NUM); + enabled_types[type] = enable; +} + +void ob_debug_type(ObDebugType type, const gchar *a, ...) +{ + va_list vl; + + g_assert(type < OB_DEBUG_TYPE_NUM); + + if (show && enabled_types[type]) { + switch (type) { + case OB_DEBUG_FOCUS: + fprintf(stderr, "FOCUS: "); + break; + case OB_DEBUG_APP_BUGS: + fprintf(stderr, "APPLICATION BUG: "); + break; + case OB_DEBUG_SM: + fprintf(stderr, "SESSION: "); + break; + default: + g_assert_not_reached(); + } + va_start(vl, a); vfprintf(stderr, a, vl); va_end(vl);