=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/log.c,v retrieving revision 1.24 retrieving revision 1.25 diff -c -r1.24 -r1.25 *** src/usr.bin/tmux/log.c 2017/02/04 23:42:53 1.24 --- src/usr.bin/tmux/log.c 2017/06/04 08:25:57 1.25 *************** *** 1,4 **** ! /* $OpenBSD: log.c,v 1.24 2017/02/04 23:42:53 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: log.c,v 1.25 2017/06/04 08:25:57 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott *************** *** 62,79 **** if (log_level == 0) return; - if (log_file != NULL) - fclose(log_file); - xasprintf(&path, "tmux-%s-%ld.log", name, (long)getpid()); ! log_file = fopen(path, "w"); free(path); if (log_file == NULL) return; setvbuf(log_file, NULL, _IOLBF, 0); event_set_log_callback(log_event_cb); } /* Close logging. */ --- 62,92 ---- if (log_level == 0) return; + log_close(); xasprintf(&path, "tmux-%s-%ld.log", name, (long)getpid()); ! log_file = fopen(path, "a"); free(path); if (log_file == NULL) return; setvbuf(log_file, NULL, _IOLBF, 0); event_set_log_callback(log_event_cb); + } + + /* Toggle logging. */ + void + log_toggle(const char *name) + { + if (log_level == 0) { + log_level = 1; + log_open(name); + log_debug("log opened"); + } else { + log_debug("log closed"); + log_level = 0; + log_close(); + } } /* Close logging. */