X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=gui.c;h=c335250fee77daccc61868963e6135a220337610;hp=0cb4b74afd0d616afedb06ec18fdc4f3329fc9d2;hb=8d7bdabd22ed7750086ca660754d8d881dae3832;hpb=9a4a139a9c57420e1bd4b96000985cbfa841782d diff --git a/gui.c b/gui.c index 0cb4b74a..c335250f 100644 --- a/gui.c +++ b/gui.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 1998-2007 Andre Noll + * Copyright (C) 1998-2008 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -45,7 +45,7 @@ struct rb_entry { size_t len; int color; }; -void *bot_win_rb; +struct ringbuffer *bot_win_rb; #define NUM_LINES(len) (1 + (len) / bot.cols) static unsigned scroll_position; @@ -966,8 +966,15 @@ check_return: */ static int send_output(void) { + int ret; + if (command_pipe < 0) return 0; + ret = mark_fd_nonblocking(command_pipe); + if (ret < 0) { + close(command_pipe); + return ret; + } if (do_select(COMMAND_MODE) >= 0) PARA_INFO_LOG("%s", "command complete"); else @@ -988,7 +995,6 @@ static int client_cmd_cmdline(char *cmd) if (ret < 0) return -1; command_pipe = fds[1]; - mark_fd_nonblocking(command_pipe); return send_output(); } @@ -1004,7 +1010,6 @@ static int display_cmd(char *cmd) if (para_exec_cmdline_pid(&cmd_pid, cmd, fds) < 0) return -1; command_pipe = fds[1]; - mark_fd_nonblocking(command_pipe); return send_output(); }