diff --git a/src/finit.c b/src/finit.c index c507a9f7..f484e763 100644 --- a/src/finit.c +++ b/src/finit.c @@ -303,7 +303,7 @@ int main(int argc, char* argv[]) conf_parse_cmdline(); /* Set up canvas */ - if (!rescue) + if (!rescue && !log_is_debug()) screen_init(); /* diff --git a/src/helpers.c b/src/helpers.c index 2b5fc14d..52ab145c 100644 --- a/src/helpers.c +++ b/src/helpers.c @@ -110,13 +110,6 @@ void print(int action, const char *fmt, ...) if (log_is_silent()) return; - /* - * In debug mode we must reinitialize often, user may be - * resizing their terminal to cope with debug output. - */ - if (log_is_debug()) - screen_init(); - if (fmt) { va_start(ap, fmt); printv(fmt, ap); diff --git a/src/log.c b/src/log.c index 6402dd62..6e2bb3b5 100644 --- a/src/log.c +++ b/src/log.c @@ -67,8 +67,14 @@ void log_exit(void) fputs("\n", stderr); } - /* Reinitialize screen, terminal may have been resized at runtime */ - screen_init(); + /* + * Unless in debug mode at shutdown, Reinitialize screen, + * terminal may have been resized at runtime + */ + if (debug) + screen_exit(); + else + screen_init(); } void log_open(void) @@ -106,9 +112,13 @@ void log_debug(void) if (debug) { silent = 0; loglevel = LOG_DEBUG; + + screen_exit(); } else { silent = SILENT_MODE; loglevel = LOG_NOTICE; + + screen_init(); } log_open();