mirror of
				https://github.com/tmux/tmux.git
				synced 2025-11-04 00:56:10 +00:00 
			
		
		
		
	Pass logging through vis(3).
This commit is contained in:
		
							
								
								
									
										16
									
								
								log.c
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								log.c
									
									
									
									
									
								
							@@ -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);
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user