Pass logging through vis(3).

This commit is contained in:
nicm 2015-09-01 19:14:43 +00:00
parent fa3d4fab85
commit 364a885b0c

16
log.c
View File

@ -22,6 +22,7 @@
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <vis.h>
#include "tmux.h"
@ -66,19 +67,24 @@ log_close(void)
void
log_vwrite(const char *msg, va_list ap)
{
char *fmt;
char *fmt, *out;
struct timeval tv;
if (log_file == NULL)
return;
gettimeofday(&tv, NULL);
if (asprintf(&fmt, "%lld.%06d %s\n", (long long)tv.tv_sec,
(int)tv.tv_usec, msg) == -1)
if (vasprintf(&fmt, msg, ap) == -1)
exit(1);
if (vfprintf(log_file, fmt, ap) == -1)
if (stravis(&out, fmt, VIS_OCTAL|VIS_CSTYLE|VIS_TAB|VIS_NL) == -1)
exit(1);
gettimeofday(&tv, NULL);
if (fprintf(log_file, "%lld.%06d %s\n", (long long)tv.tv_sec,
(int)tv.tv_usec, out) == -1)
exit(1);
fflush(log_file);
free(out);
free(fmt);
}