int color;
char *msg;
va_list ap;
+ unsigned bytes;
if (ll < loglevel || !curses_active)
return;
color = COLOR_ERRMSG;
}
va_start(ap, fmt);
- xvasprintf(&msg, fmt, ap);
+ bytes = xvasprintf(&msg, fmt, ap);
va_end(ap);
- chop(msg);
+ if (bytes > 0 && msg[bytes - 1] == '\n')
+ msg[bytes - 1] = '\0'; /* cut trailing newline */
rb_add_entry(color, msg);
wrefresh(bot.win);
}
assume_default_colors(theme.default_fg, theme.default_bg);
if (top.win) {
- mvwin(top.win, top.begy, top.begx);
wresize(top.win, top.lines, top.cols);
+ mvwin(top.win, top.begy, top.begx);
- mvwin(sb.win, sb.begy, sb.begx);
wresize(sb.win, sb.lines, sb.cols);
+ mvwin(sb.win, sb.begy, sb.begx);
- mvwin(sep.win, sep.begy, sep.begx);
wresize(sep.win, sep.lines, sep.cols);
+ mvwin(sep.win, sep.begy, sep.begx);
- mvwin(bot.win, bot.begy, bot.begx);
wresize(bot.win, bot.lines, bot.cols);
+ mvwin(bot.win, bot.begy, bot.begx);
- mvwin(in.win, in.begy, in.begx);
wresize(in.win, in.lines, in.cols);
+ mvwin(in.win, in.begy, in.begx);
} else {
sep.win = newwin(sep.lines, sep.cols, sep.begy, sep.begx);
top.win = newwin(top.lines, top.cols, top.begy, top.begx);
init_curses();
}
-static void change_theme(int next)
-{
- if (next)
- next_theme(&theme);
- else
- prev_theme(&theme);
- /* This seems to be needed twice, why? */
- com_refresh();
- com_refresh();
- PARA_NOTICE_LOG("new theme: %s\n", theme.name);
-}
-
static void com_next_theme(void)
{
- change_theme(1);
+ theme_next(&theme);
+ com_refresh();
}
static void com_prev_theme(void)
{
- change_theme(0);
+ theme_prev(&theme);
+ com_refresh();
}
-
static void handle_command(int c)
{
int i;
fprintf(stderr, "invalid key map\n");
exit(EXIT_FAILURE);
}
- init_theme_or_die(conf.theme_arg, &theme);
+ theme_init(conf.theme_arg, &theme);
setup_signal_handling();
bot_win_rb = ringbuffer_new(RINGBUFFER_SIZE);
setlocale(LC_CTYPE, "");