write_ok(): Always reset the select timeout
[paraslash.git] / gui.c
diff --git a/gui.c b/gui.c
index de0e9c54a2729c4d597b8521989c233bf8340bb1..c0588197c553e1728713e0e964c61041eb02e7ef 100644 (file)
--- a/gui.c
+++ b/gui.c
 #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];
 
-#define STANDARD_STATUS_BAR "para_gui " VERSION " (hit ? for help)"
+#define STANDARD_STATUS_BAR "para_gui " PACKAGE_VERSION " (hit ? for help)"
 
 static int signal_pipe;
 
@@ -58,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};
 
@@ -336,7 +339,7 @@ static void print_status_bar(void)
        if (!curses_active)
                return;
        wmove(sb.win, 0, 0);
-       align_str(sb.win,STANDARD_STATUS_BAR, sb.cols, CENTER);
+       align_str(sb.win, STANDARD_STATUS_BAR, sb.cols, CENTER);
        wrefresh(sb.win);
 }
 
@@ -537,7 +540,7 @@ static void print_welcome(void)
        int ll = conf.loglevel_arg;
        if (ll > NOTICE)
                return;
-       outputf(COLOR_WELCOME, "Welcome to para_gui " VERSION
+       outputf(COLOR_WELCOME, "Welcome to para_gui " PACKAGE_VERSION
                " \"" CODENAME "\". Theme: %s", theme.name);
        wclrtoeol(bot.win);
 }
@@ -883,23 +886,14 @@ 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);
+       if (command_pipe >= 0 && mode == COMMAND_MODE)
+               para_fd_set(command_pipe, &rfds, &max_fileno);
        ret = para_select(max_fileno + 1, &rfds, NULL, &tv);
-//     PARA_DEBUG_LOG("select returned %d\n", ret);
        if (ret <= 0)
                goto check_return; /* skip fd checks */
        /* signals */
@@ -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);
@@ -1230,7 +1224,8 @@ static void com_enlarge_top_win(void)
 
 static void com_version(void)
 {
-       print_in_bar(COLOR_MSG, "para_gui " VERSION " \"" CODENAME "\"");
+       print_in_bar(COLOR_MSG, "para_gui " PACKAGE_VERSION " \""
+               CODENAME "\"");
 }
 
 static void com_quit(void)
@@ -1318,7 +1313,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 +1330,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);