X-Git-Url: https://git.dogcows.com/gitweb?a=blobdiff_plain;f=openbox%2Fdebug.c;h=af22c69f2cf8626fadf31293dcb1bff9a1a4e6af;hb=4c672be2e1f39e72eb7d7e99f129e61338f481b2;hp=b7f8e1f4cee14385ed2a623a182964d4a97b3b5e;hpb=16f46c296d1fcd3f27fc62a18e71c55fb3fd3e88;p=chaz%2Fopenbox diff --git a/openbox/debug.c b/openbox/debug.c index b7f8e1f4..af22c69f 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,12 +30,34 @@ 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) { 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]) { + va_start(vl, a); + vfprintf(stderr, a, vl); + va_end(vl); } }