[gtk/debug-envvars-cleanup] Introduce new debug macros



commit 201c9e41c7a2c7e9e337bac3fdbbc4ea5adcc603
Author: Matthias Clasen <mclasen redhat com>
Date:   Thu Sep 22 20:47:09 2022 -0400

    Introduce new debug macros
    
    Introduce GDK_DISPLAY_DEBUG() and GDK_DEBUG() and
    the helper function gdk_debug_message(). This is
    meant to clean up the mess of our current debug
    statements which wildly mix g_message, g_print
    and g_printerr.

 gdk/gdk.c      | 14 ++++++++++++++
 gdk/gdkdebug.h |  8 ++++++++
 2 files changed, 22 insertions(+)
---
diff --git a/gdk/gdk.c b/gdk/gdk.c
index 2c145a0898..62d125c3fc 100644
--- a/gdk/gdk.c
+++ b/gdk/gdk.c
@@ -34,6 +34,7 @@
 #include "gdkglcontextprivate.h"
 #include "gdkintl.h"
 #include "gdk-private.h"
+#include <glib/gprintf.h>
 
 #include <string.h>
 #include <stdlib.h>
@@ -420,3 +421,16 @@ gdk_source_set_static_name_by_id (guint           tag,
 
   g_source_set_static_name (source, name);
 }
+
+void
+gdk_debug_message (const char *format,
+                   ...)
+{
+  va_list args;
+
+  va_start (args, format);
+  g_vfprintf (stderr, format, args);
+  va_end (args);
+
+  g_fprintf (stderr, "\n");
+}
diff --git a/gdk/gdkdebug.h b/gdk/gdkdebug.h
index 8b185bf3d3..82f05edafe 100644
--- a/gdk/gdkdebug.h
+++ b/gdk/gdkdebug.h
@@ -57,6 +57,8 @@ extern guint _gdk_debug_flags;
 GdkDebugFlags    gdk_display_get_debug_flags    (GdkDisplay       *display);
 void             gdk_display_set_debug_flags    (GdkDisplay       *display,
                                                  GdkDebugFlags     flags);
+void             gdk_debug_message              (const char       *format,
+                                                 ...) G_GNUC_PRINTF (1, 2);
 
 #ifdef G_ENABLE_DEBUG
 
@@ -66,14 +68,20 @@ void             gdk_display_set_debug_flags    (GdkDisplay       *display,
     if (GDK_DISPLAY_DEBUG_CHECK (display,type))                           \
        { action; };                            } G_STMT_END
 
+#define GDK_DISPLAY_DEBUG(display,type,...)                               \
+    if (GDK_DISPLAY_DEBUG_CHECK (display,type))                           \
+      gdk_debug_message (__VA_ARGS__);                                    \
+
 #else /* !G_ENABLE_DEBUG */
 
 #define GDK_DISPLAY_DEBUG_CHECK(display,type) 0
 #define GDK_DISPLAY_NOTE(display,type,action)
+#define GDK_DISPLAY_DEBUG(display,type,...)
 
 #endif /* G_ENABLE_DEBUG */
 
 #define GDK_DEBUG_CHECK(type) GDK_DISPLAY_DEBUG_CHECK (NULL,type)
 #define GDK_NOTE(type,action) GDK_DISPLAY_NOTE (NULL,type,action)
+#define GDK_DEBUG(type,...) GDK_DISPLAY_DEBUG (NULL,type,__VA_ARGS__)
 
 #endif


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]