summary refs log tree commit diff
path: root/util.c
diff options
context:
space:
mode:
authorokan <okan>2018-02-02 13:40:55 +0000
committerokan <okan>2018-02-02 13:40:55 +0000
commit34e15dbd7a2226de417fe60c69de777667b8d6af (patch)
treec3fd73ceed258cff45ffb8ed1114fe706885626e /util.c
parent9bf750b0549f10fdd4f5898dbab40ad4c946eee6 (diff)
downloadcwm-34e15dbd7a2226de417fe60c69de777667b8d6af.tar.gz
cwm-34e15dbd7a2226de417fe60c69de777667b8d6af.tar.xz
cwm-34e15dbd7a2226de417fe60c69de777667b8d6af.zip
Add a simple debug logging mechanism.
Diffstat (limited to 'util.c')
-rw-r--r--util.c30
1 files changed, 30 insertions, 0 deletions
diff --git a/util.c b/util.c
index 3c35f33..e6e8443 100644
--- a/util.c
+++ b/util.c
@@ -31,6 +31,8 @@
 
 #include "calmwm.h"
 
+static void	 log_msg(const char *, va_list);
+
 void
 u_spawn(char *argstr)
 {
@@ -104,3 +106,31 @@ u_argv(char * const *argv)
 	}
 	return(p);
 }
+
+static void
+log_msg(const char *msg, va_list ap)
+{
+	char	*fmt;
+
+	if (asprintf(&fmt, "%s\n", msg) == -1) {
+		vfprintf(stderr, msg, ap);
+		fprintf(stderr, "\n");
+	} else {
+		vfprintf(stderr, fmt, ap);
+		free(fmt);
+	}
+	fflush(stderr);
+}
+
+void
+log_debug(const char *func, const char *msg, ...)
+{
+	char	*fmt;
+	va_list	 ap;
+
+	va_start(ap, msg);
+	if (asprintf(&fmt, "%s: %s", func, msg) == -1)
+		exit(1);
+	log_msg(fmt, ap);
+	va_end(ap);
+}