aboutsummaryrefslogtreecommitdiffstats
path: root/util.c
diff options
context:
space:
mode:
authorokan2018-02-02 13:40:55 +0000
committerokan2018-02-02 13:40:55 +0000
commit3a58e9dea32937308577c6f8bd8b2b6ea3bd5092 (patch)
tree3262b78eca1a30bfcb74b03c63c804ebd66f137d /util.c
parentf4c2ff2f29a17a5916e9bf642240abb5f4fc190a (diff)
downloadcwm-3a58e9dea32937308577c6f8bd8b2b6ea3bd5092.tar.gz
Add a simple debug logging mechanism.
Diffstat (limited to 'util.c')
-rw-r--r--util.c32
1 files changed, 31 insertions, 1 deletions
diff --git a/util.c b/util.c
index 8d44c26..6898a26 100644
--- a/util.c
+++ b/util.c
@@ -15,7 +15,7 @@
* ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*
- * $OpenBSD: util.c,v 1.20 2018/01/08 16:21:54 okan Exp $
+ * $OpenBSD: util.c,v 1.21 2018/02/02 13:40:55 okan Exp $
*/
#include <sys/types.h>
@@ -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);
+}