]> git.tuebingen.mpg.de Git - paraslash.git/blobdiff - gui.c
gui: Don't exit without shutting down curses on config reload.
[paraslash.git] / gui.c
diff --git a/gui.c b/gui.c
index ebddd88cb20b12514e249d7a8ed2dfb771df4668..3b001a7da191a7c5f52a177ee73e0045c81ce05c 100644 (file)
--- a/gui.c
+++ b/gui.c
@@ -1228,7 +1228,8 @@ static void com_reread_conf(void)
                .override = 1,
                .initialize = 1,
                .check_required = 0,
-               .check_ambiguity = 0
+               .check_ambiguity = 0,
+               .print_errors = 0,
        };
 
        if (!cf) {
@@ -1236,8 +1237,11 @@ static void com_reread_conf(void)
                return;
        }
        PARA_INFO_LOG("rereading command line options and config file");
-       gui_cmdline_parser(_argc, _argv, &conf);
-       gui_cmdline_parser_config_file(cf, &conf, &params);
+       gui_cmdline_parser_ext(_argc, _argv, &conf, &params);
+       if (gui_cmdline_parser_config_file(cf, &conf, &params) != 0) {
+               PARA_EMERG_LOG("errors in config file");
+               finish(EXIT_FAILURE);
+       }
        PARA_NOTICE_LOG("config file reloaded");
        if (check_key_map_args() < 0)
                finish(EXIT_FAILURE);
@@ -1394,12 +1398,9 @@ int main(int argc, char *argv[])
        _argc = argc;
        _argv = argv;
 
-       gui_cmdline_parser(argc, argv, &conf);
-       HANDLE_VERSION_FLAG("gui", conf);
-       if (check_key_map_args() < 0) {
-               fprintf(stderr, "invalid key map\n");
+       if (gui_cmdline_parser(argc, argv, &conf) != 0)
                exit(EXIT_FAILURE);
-       }
+       HANDLE_VERSION_FLAG("gui", conf);
        cf = configfile_exists();
        if (!cf && conf.config_file_given) {
                fprintf(stderr, "can not read config file %s\n",
@@ -1411,13 +1412,15 @@ int main(int argc, char *argv[])
                        .override = 0,
                        .initialize = 0,
                        .check_required = 0,
-                       .check_ambiguity = 0
+                       .check_ambiguity = 0,
+                       .print_errors = 1,
                };
-               gui_cmdline_parser_config_file(cf, &conf, &params);
+               if (gui_cmdline_parser_config_file(cf, &conf, &params) != 0)
+                       exit(EXIT_FAILURE);
        }
        loglevel = get_loglevel_by_name(conf.loglevel_arg);
        if (check_key_map_args() < 0) {
-               fprintf(stderr, "invalid key map in config file\n");
+               fprintf(stderr, "invalid key map\n");
                exit(EXIT_FAILURE);
        }
        init_theme_or_die(conf.theme_arg, &theme);