diff options
author | okan | 2018-02-02 13:40:55 +0000 |
---|---|---|
committer | okan | 2018-02-02 13:40:55 +0000 |
commit | 3a58e9dea32937308577c6f8bd8b2b6ea3bd5092 (patch) | |
tree | 3262b78eca1a30bfcb74b03c63c804ebd66f137d /util.c | |
parent | f4c2ff2f29a17a5916e9bf642240abb5f4fc190a (diff) | |
download | cwm-3a58e9dea32937308577c6f8bd8b2b6ea3bd5092.tar.gz |
Add a simple debug logging mechanism.
Diffstat (limited to 'util.c')
-rw-r--r-- | util.c | 32 |
1 files changed, 31 insertions, 1 deletions
@@ -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); +} |