From: Andre Noll Date: Tue, 7 Jan 2014 16:14:12 +0000 (+0000) Subject: gui: Shut down curses before rereading the config file. X-Git-Tag: v0.5.3~12^2~52 X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=commitdiff_plain;h=3ad33afa3db46e394c0a5055a7f6eff7113e8df6;ds=sidebyside gui: Shut down curses before rereading the config file. If the config file contains errors, gui_cmdline_parser_config_file() calls exit() while curses is still active, leading to messed up terminal settings. Fix this by calling shutdown_curses() before parsing the config file, and init_curses() thereafter. --- diff --git a/gui.c b/gui.c index 5a2e659d..716e299b 100644 --- a/gui.c +++ b/gui.c @@ -1362,7 +1362,13 @@ static void com_reread_conf(void) } PARA_INFO_LOG("rereading command line options and config file"); gui_cmdline_parser_ext(_argc, _argv, &conf, ¶ms); + /* + * Despite .print_errors is set to 0, gengetopt will print to stderr + * anyway, and exit on errors. So we have to shutdown curses first. + */ + shutdown_curses(); gui_cmdline_parser_config_file(cf, &conf, ¶ms); + init_curses(); PARA_NOTICE_LOG("config file reloaded"); if (check_key_map_args() < 0) finish(EXIT_FAILURE);