gui: Only check STDIN for readability if curses is active.
[paraslash.git] / gui.c
diff --git a/gui.c b/gui.c
index 351748e..fff5741 100644 (file)
--- a/gui.c
+++ b/gui.c
@@ -20,7 +20,6 @@
 
 #include "gui.cmdline.h"
 #include "para.h"
-#include "gcc-compat.h"
 #include <curses.h>
 #include "ringbuffer.h"
 #include "string.h"
@@ -841,25 +840,17 @@ static void handle_signal(int sig)
        }
 }
 
-/* open pipe if last attempt to open was more than 2 secs ago */
 static int open_audiod_pipe(void)
 {
-       static time_t open_time, *p;
-       time_t now;
-       double diff;
-
-       if (p) {
-               time(&now);
-               diff = difftime(now, open_time);
-               if (diff < 2)
-                       return -1;
-       } else
-               p = &open_time;
-       time(&open_time);
+       static int init = 1;
+
+       if (init)
+               init = 0;
+       else
+               sleep(1);
        return para_open_audiod_pipe(conf.stat_cmd_arg);
 }
 
-
 /*
  * This is the core select loop. Besides the (internal) signal
  * pipe, the following other fds are checked according to the mode:
@@ -904,7 +895,8 @@ repeat:
                FD_SET(command_pipe, &rfds);
                max_fileno = MAX(max_fileno, command_pipe);
        }
-       FD_SET(STDIN_FILENO, &rfds);
+       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);
 
@@ -936,10 +928,9 @@ repeat:
                        audiod_pipe = -1;
                        clear_all_items();
                        free(stat_content[SI_STATUS_BAR]);
-                       stat_content[SI_STATUS_BAR] = 
-                               para_strdup("audiod not running!?\n");
+                       stat_content[SI_STATUS_BAR] =
+                               para_strdup("audiod not running!?");
                        print_all_items();
-                       sleep(1);
                }
 check_return:
        switch (mode) {
@@ -947,7 +938,7 @@ check_return:
                if (cp_numread <= 0 && !cbo) /* command complete */
                        return 0;
                if (cbo)
-                       cbo = for_each_line(command_buf, cbo, &add_output_line, 0);
+                       cbo = for_each_line(command_buf, cbo, &add_output_line);
                if (cp_numread <= 0)
                        cbo = 0;
                wrefresh(bot.win);