X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=gui.c;h=ffd1ea842039760bd6a1ec268a01423334bbb368;hp=7b10992c8d0b7282a3854b473ed38cebbca83d67;hb=8a8cd0f5bb40dcfad68608193e8c57decd90b25e;hpb=adbf9f09c9bf2a680c61b1ef3541c04f1cde97cf diff --git a/gui.c b/gui.c index 7b10992c..ffd1ea84 100644 --- a/gui.c +++ b/gui.c @@ -23,7 +23,11 @@ #include #include "ringbuffer.h" #include "string.h" +#include "fd.h" +#include "error.h" +/** define the array of error lists needed by para_gui */ +INIT_GUI_ERRLISTS; extern const char *status_item_list[NUM_STAT_ITEMS]; static char *stat_content[NUM_STAT_ITEMS]; @@ -57,7 +61,7 @@ static pid_t external_cmd_pid; static int command_pipe = -1; static int audiod_pipe = -1; -static struct gengetopt_args_info conf; +static struct gui_args_info conf; enum {GETCH_MODE, COMMAND_MODE, EXTERNAL_MODE}; @@ -882,32 +886,22 @@ repeat: /* audiod pipe */ if (audiod_pipe < 0) audiod_pipe = open_audiod_pipe(); - if (audiod_pipe >= 0) { - FD_SET(audiod_pipe, &rfds); - max_fileno = MAX(max_fileno, audiod_pipe); - } - + if (audiod_pipe >= 0) + para_fd_set(audiod_pipe, &rfds, &max_fileno); /* signal pipe */ - FD_SET(signal_pipe, &rfds); - max_fileno = MAX(max_fileno, signal_pipe); + para_fd_set(signal_pipe, &rfds, &max_fileno); /* command pipe only for COMMAND_MODE */ - if (command_pipe >= 0 && mode == COMMAND_MODE) { - FD_SET(command_pipe, &rfds); - max_fileno = MAX(max_fileno, command_pipe); - } - if (curses_active) - FD_SET(STDIN_FILENO, &rfds); - ret = select(max_fileno + 1, &rfds, NULL, NULL, &tv); -// PARA_DEBUG_LOG("select returned %d\n", ret); - + if (command_pipe >= 0 && mode == COMMAND_MODE) + para_fd_set(command_pipe, &rfds, &max_fileno); + ret = para_select(max_fileno + 1, &rfds, NULL, &tv); + if (ret <= 0) + goto check_return; /* skip fd checks */ /* signals */ if (FD_ISSET(signal_pipe, &rfds)) { int sig_nr = para_next_signal(); if (sig_nr > 0) handle_signal(sig_nr); } - if (ret <= 0) - goto check_return; /* skip fd checks */ /* read command pipe if ready */ if (command_pipe >= 0 && mode == COMMAND_MODE && FD_ISSET(command_pipe, &rfds)) { @@ -1089,22 +1083,22 @@ static void com_scroll_up(void) { struct rb_entry *rbe = NULL; unsigned lines; - int i, first_rbe, scroll; + int i, first_rbe, num_scroll; /* the entry that is going to vanish */ rbe = ringbuffer_get(bot_win_rb, scroll_position); if (!rbe) goto err_out; - scroll = NUM_LINES(rbe->len); + num_scroll = NUM_LINES(rbe->len); first_rbe = first_visible_rbe(&lines); if (first_rbe < 0 || (first_rbe == ringbuffer_filled(bot_win_rb) - 1)) goto err_out; scroll_position++; - wscrl(bot.win, -scroll); + wscrl(bot.win, -num_scroll); i = draw_top_rbe(&lines); if (i < 0) goto err_out; - while (i > 0 && lines < scroll) { + while (i > 0 && lines < num_scroll) { int rbe_lines; rbe = ringbuffer_get(bot_win_rb, --i); if (!rbe) @@ -1160,8 +1154,8 @@ static void com_reread_conf(void) return; } PARA_INFO_LOG("%s", "rereading command line options and config file"); - cmdline_parser(_argc, _argv, &conf); - cmdline_parser_configfile(cf, &conf, 1, 1, 0); + gui_cmdline_parser(_argc, _argv, &conf); + gui_cmdline_parser_configfile(cf, &conf, 1, 1, 0); PARA_NOTICE_LOG("%s", "configuration read"); if (check_key_map_args() < 0) finish(EXIT_FAILURE); @@ -1318,7 +1312,7 @@ int main(int argc, char *argv[]) _argc = argc; _argv = argv; - if (cmdline_parser(argc, argv, &conf)) { + if (gui_cmdline_parser(argc, argv, &conf)) { fprintf(stderr, "parse error while reading command line\n"); exit(EXIT_FAILURE); } @@ -1335,7 +1329,7 @@ int main(int argc, char *argv[]) exit(EXIT_FAILURE); } if (cf) - cmdline_parser_configfile(cf, &conf, 0, 0, 0); + gui_cmdline_parser_configfile(cf, &conf, 0, 0, 0); if (check_key_map_args() < 0) { fprintf(stderr, "invalid key map in config file\n"); exit(EXIT_FAILURE);