/*
- * Copyright (C) 1998-2007 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1998-2008 Andre Noll <maan@systemlinux.org>
*
* Licensed under the GPL v2. For licencing details see COPYING.
*/
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;
if (!curses_active || !d.len || !c)
return;
tmp = make_message("%s%s%s", d.prefix, c, d.postfix);
-// PARA_DEBUG_LOG("%s: read: %s\n", __func__, tmp);
wmove(top.win, d.y * top.lines / 100, d.x * COLS / 100);
wrefresh(top.win);
wattron(top.win, COLOR_PAIR(i + 1));
static void init_colors(void)
{
int i;
+
if (!has_colors())
msg_n_exit(EXIT_FAILURE, "Error: No color term\n");
start_color();
// PARA_INFO_LOG("%s: checking: %s\n", __func__, line);
i = stat_line_valid(line);
if (i >= 0) {
- line += strlen(status_item_list[i]) + 2;
+ line += strlen(status_item_list[i]) + 1;
+ if (*line == ' ')
+ line++;
free(stat_content[i]);
stat_content[i] = para_strdup(line);
print_stat_item(i);
*/
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
static int client_cmd_cmdline(char *cmd)
{
int ret, fds[3] = {0, 1, 0};
- char *c = make_message(BINDIR "/para_client %s", cmd);
+ char *c = make_message(BINDIR "/para_client -- %s", cmd);
outputf(COLOR_COMMAND, "%s", c);
print_in_bar(COLOR_MSG, "executing client command, hit any key to abort\n");
if (ret < 0)
return -1;
command_pipe = fds[1];
- mark_fd_nonblocking(command_pipe);
return send_output();
}
if (para_exec_cmdline_pid(&cmd_pid, cmd, fds) < 0)
return -1;
command_pipe = fds[1];
- mark_fd_nonblocking(command_pipe);
return send_output();
}