Pass logging through vis(3).

pull/121/head
nicm 2015-09-01 19:14:43 +00:00
parent fa3d4fab85
commit 364a885b0c
1 changed files with 11 additions and 5 deletions

16
log.c
View File

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