Follow-up to f858d94, only reinitialize screen when toggling debug mode

The screen_init() call for each print() & C:o caused serious screen
artefacts in debug mode.  This patch reworks f858d94 to only re-init
screen when toggling debug.

Also, avoid screen_init() completely if started in debug mode.

Signed-off-by: Joachim Nilsson <troglobit@gmail.com>
This commit is contained in:
Joachim Nilsson
2018-01-23 09:33:24 +01:00
parent ddf1bce642
commit 3d20237959
3 changed files with 13 additions and 10 deletions
+1 -1
View File
@@ -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();
/*
-7
View File
@@ -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);
+12 -2
View File
@@ -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();