=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/log.c,v retrieving revision 1.6 retrieving revision 1.7 diff -c -r1.6 -r1.7 *** src/usr.bin/tmux/log.c 2012/03/17 18:38:58 1.6 --- src/usr.bin/tmux/log.c 2012/05/25 08:28:10 1.7 *************** *** 1,4 **** ! /* $OpenBSD: log.c,v 1.6 2012/03/17 18:38:58 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: log.c,v 1.7 2012/05/25 08:28:10 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 27,46 **** #include "tmux.h" - /* Logging type. */ - #define LOG_TYPE_OFF 0 - #define LOG_TYPE_TTY 1 - #define LOG_TYPE_FILE 2 - int log_type = LOG_TYPE_OFF; - /* Log file, if needed. */ ! FILE *log_file; /* Debug level. */ ! int log_level; void log_event_cb(int, const char *); ! void log_vwrite(int, const char *, va_list); __dead void log_vfatal(const char *, va_list); /* Log callback for libevent. */ --- 27,40 ---- #include "tmux.h" /* Log file, if needed. */ ! FILE *log_file = stderr; /* Debug level. */ ! int log_level = 0; void log_event_cb(int, const char *); ! void log_vwrite(const char *, va_list); __dead void log_vfatal(const char *, va_list); /* Log callback for libevent. */ *************** *** 50,78 **** log_warnx("%s", msg); } - /* Open logging to tty. */ - void - log_open_tty(int level) - { - log_type = LOG_TYPE_TTY; - log_level = level; - - setlinebuf(stderr); - setlinebuf(stdout); - event_set_log_callback(log_event_cb); - - tzset(); - } - /* Open logging to file. */ void ! log_open_file(int level, const char *path) { log_file = fopen(path, "w"); if (log_file == NULL) return; - - log_type = LOG_TYPE_FILE; log_level = level; setlinebuf(log_file); --- 44,56 ---- log_warnx("%s", msg); } /* Open logging to file. */ void ! log_open(int level, const char *path) { log_file = fopen(path, "w"); if (log_file == NULL) return; log_level = level; setlinebuf(log_file); *************** *** 85,121 **** void log_close(void) { ! if (log_type == LOG_TYPE_FILE) fclose(log_file); event_set_log_callback(NULL); - - log_type = LOG_TYPE_OFF; } /* Write a log message. */ void ! log_vwrite(int pri, const char *msg, va_list ap) { char *fmt; - FILE *f = log_file; ! switch (log_type) { ! case LOG_TYPE_TTY: ! if (pri == LOG_INFO) ! f = stdout; ! else ! f = stderr; ! /* FALLTHROUGH */ ! case LOG_TYPE_FILE: ! if (asprintf(&fmt, "%s\n", msg) == -1) ! exit(1); ! if (vfprintf(f, fmt, ap) == -1) ! exit(1); ! fflush(f); ! free(fmt); ! break; ! } } /* Log a warning with error string. */ --- 63,86 ---- void log_close(void) { ! if (log_file != stderr) fclose(log_file); event_set_log_callback(NULL); } /* Write a log message. */ void ! log_vwrite(const char *msg, va_list ap) { char *fmt; ! if (asprintf(&fmt, "%s\n", msg) == -1) ! exit(1); ! if (vfprintf(log_file, fmt, ap) == -1) ! exit(1); ! fflush(log_file); ! free(fmt); } /* Log a warning with error string. */ *************** *** 128,134 **** va_start(ap, msg); if (asprintf(&fmt, "%s: %s", msg, strerror(errno)) == -1) exit(1); ! log_vwrite(LOG_CRIT, fmt, ap); free(fmt); va_end(ap); } --- 93,99 ---- va_start(ap, msg); if (asprintf(&fmt, "%s: %s", msg, strerror(errno)) == -1) exit(1); ! log_vwrite(fmt, ap); free(fmt); va_end(ap); } *************** *** 140,146 **** va_list ap; va_start(ap, msg); ! log_vwrite(LOG_CRIT, msg, ap); va_end(ap); } --- 105,111 ---- va_list ap; va_start(ap, msg); ! log_vwrite(msg, ap); va_end(ap); } *************** *** 152,158 **** if (log_level > -1) { va_start(ap, msg); ! log_vwrite(LOG_INFO, msg, ap); va_end(ap); } } --- 117,123 ---- if (log_level > -1) { va_start(ap, msg); ! log_vwrite(msg, ap); va_end(ap); } } *************** *** 165,171 **** if (log_level > 0) { va_start(ap, msg); ! log_vwrite(LOG_DEBUG, msg, ap); va_end(ap); } } --- 130,136 ---- if (log_level > 0) { va_start(ap, msg); ! log_vwrite(msg, ap); va_end(ap); } } *************** *** 178,184 **** if (log_level > 1) { va_start(ap, msg); ! log_vwrite(LOG_DEBUG, msg, ap); va_end(ap); } } --- 143,149 ---- if (log_level > 1) { va_start(ap, msg); ! log_vwrite(msg, ap); va_end(ap); } } *************** *** 192,202 **** if (errno != 0) { if (asprintf(&fmt, "fatal: %s: %s", msg, strerror(errno)) == -1) exit(1); ! log_vwrite(LOG_CRIT, fmt, ap); } else { if (asprintf(&fmt, "fatal: %s", msg) == -1) exit(1); ! log_vwrite(LOG_CRIT, fmt, ap); } free(fmt); --- 157,167 ---- if (errno != 0) { if (asprintf(&fmt, "fatal: %s: %s", msg, strerror(errno)) == -1) exit(1); ! log_vwrite(fmt, ap); } else { if (asprintf(&fmt, "fatal: %s", msg) == -1) exit(1); ! log_vwrite(fmt, ap); } free(fmt);