return 0;
}
-static int check_key_map_args(void)
+static void check_key_map_args_or_die(void)
{
- char *s;
- int i, ret = -1;
- char *tmp = NULL, *handler, *arg;
+ int i;
+ char *tmp = NULL;
for (i = 0; i < conf.key_map_given; ++i) {
- s = conf.key_map_arg[i];
- if (!(*s))
- goto out;
+ char *handler, *arg;
+
free(tmp);
- tmp = para_strdup(s);
+ tmp = para_strdup(conf.key_map_arg[i]);
if (!split_key_map(tmp, &handler, &arg))
- goto out;
+ break;
if (strlen(handler) != 1)
- goto out;
- if (*handler != 'x'
- && *handler != 'd'
- && *handler != 'i'
- && *handler != 'p')
- goto out;
+ break;
+ if (*handler != 'x' && *handler != 'd' && *handler != 'i'
+ && *handler != 'p')
+ break;
if (*handler != 'i')
continue;
if (find_cmd_byname(arg) < 0)
- goto out;
+ break;
}
- ret = 0;
-out:
+ if (i != conf.key_map_given)
+ die(EXIT_FAILURE, "invalid key map: %s\n", conf.key_map_arg[i]);
free(tmp);
- return ret;
}
/*
gui_cmdline_parser_config_file(cf, &conf, ¶ms);
init_curses();
PARA_NOTICE_LOG("config file reloaded\n");
- if (check_key_map_args() < 0)
- die(EXIT_FAILURE, "invalid key map\n");
+ check_key_map_args_or_die();
}
static void com_help(void)
gui_cmdline_parser_config_file(cf, &conf, ¶ms);
loglevel = get_loglevel_by_name(conf.loglevel_arg);
}
- if (check_key_map_args() < 0)
- die(EXIT_FAILURE, "invalid key map\n");
+ check_key_map_args_or_die();
theme_init(conf.theme_arg, &theme);
setup_signal_handling();
bot_win_rb = ringbuffer_new(RINGBUFFER_SIZE);