X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;f=gui.c;h=7dab4466beb0e4b1ecb7f5d007ed0f7bf89db9d6;hb=07caf51b881e2f8e93fbcf529ea1a9b14a40f82e;hp=a2d3e6cd5b63c5d867d793939dbae219196b6bab;hpb=8dffec19598a4a0ed77fa082abaf52c8fe66d889;p=paraslash.git diff --git a/gui.c b/gui.c index a2d3e6cd..7dab4466 100644 --- a/gui.c +++ b/gui.c @@ -6,14 +6,19 @@ /** \file gui.c ncurses-based interface for paraslash */ +#include +#include +#include #include "gui.cmdline.h" #include "para.h" #include "gui.h" #include #include "ringbuffer.h" -#include "string.h" +#include "gui_common.h" #include "fd.h" #include "error.h" +#include "list.h" +#include "sched.h" #include "signal.h" /** define the array of error lists needed by para_gui */ @@ -447,11 +452,12 @@ __printf_2_3 static void outputf(int color, const char* fmt,...) wrefresh(bot.win); } -static void add_output_line(char *line) +static int add_output_line(char *line, __a_unused void *data) { if (!curses_active) - return; + return 1; rb_add_entry(COLOR_OUTPUT, para_strdup(line)); + return 1; } void para_log(int ll, const char *fmt,...) @@ -720,10 +726,11 @@ static void init_curses(void) static void check_sigchld(void) { + int ret; pid_t pid; reap_next_child: - pid = para_reap_child(); - if (pid <= 0) + ret = para_reap_child(&pid); + if (ret <= 0) return; if (pid == cmd_pid) { cmd_pid = 0; @@ -735,7 +742,7 @@ reap_next_child: /* * print status line if line starts with known command. */ -static void check_stat_line(char *line) +static int check_stat_line(char *line, __a_unused void *data) { int i; @@ -747,7 +754,7 @@ static void check_stat_line(char *line) stat_content[i] = para_strdup(line); print_stat_item(i); } - return; + return 1; } /* @@ -911,8 +918,8 @@ repeat: close(audiod_pipe); audiod_pipe = -1; clear_all_items(); - free(stat_content[SI_STATUS_BAR]); - stat_content[SI_STATUS_BAR] = + free(stat_content[SI_BASENAME]); + stat_content[SI_BASENAME] = para_strdup("audiod not running!?"); print_all_items(); } @@ -922,7 +929,8 @@ check_return: if (cp_numread <= 0 && !cbo) /* command complete */ return 0; if (cbo) - cbo = for_each_line(command_buf, cbo, &add_output_line); + cbo = for_each_line(command_buf, cbo, + &add_output_line, NULL); if (cp_numread <= 0) cbo = 0; wrefresh(bot.win);