From 10f0094be9157eba9d6dad8eace00641de960748 Mon Sep 17 00:00:00 2001 From: nicm Date: Wed, 13 Mar 2019 21:39:21 +0000 Subject: [PATCH 1/2] The pane's style should be initialized to default before parsing the argument. --- cmd-select-pane.c | 3 +++ colour.c | 2 +- 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/cmd-select-pane.c b/cmd-select-pane.c index 90ca46ba..87156250 100644 --- a/cmd-select-pane.c +++ b/cmd-select-pane.c @@ -19,6 +19,7 @@ #include #include +#include #include "tmux.h" @@ -143,6 +144,8 @@ cmd_select_pane_exec(struct cmd *self, struct cmdq_item *item) if (args_has(self->args, 'P') || args_has(self->args, 'g')) { if (args_has(args, 'P')) { style = args_get(args, 'P'); + memcpy(&wp->colgc, &grid_default_cell, + sizeof wp->colgc); if (style_parse(&grid_default_cell, &wp->colgc, style) == -1) { cmdq_error(item, "bad style: %s", style); diff --git a/colour.c b/colour.c index a0274dd3..eaee6058 100644 --- a/colour.c +++ b/colour.c @@ -160,7 +160,7 @@ colour_tostring(int c) case 97: return ("brightwhite"); } - return (NULL); + return ("invalid"); } /* Convert colour from string. */ From 5755bfc619d9d638e82b53afc91cf06096f4dfd9 Mon Sep 17 00:00:00 2001 From: nicm Date: Wed, 13 Mar 2019 22:01:22 +0000 Subject: [PATCH 2/2] Need to set attributes before clearing. --- tty.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tty.c b/tty.c index cd3ea5e0..118904a4 100644 --- a/tty.c +++ b/tty.c @@ -1281,12 +1281,12 @@ tty_draw_line(struct tty *tty, const struct window_pane *wp, gcp->bg != last.bg || ux + width + gcp->data.width > nx || (sizeof buf) - len < gcp->data.size)) { + tty_attributes(tty, &last, wp); if (last.flags & GRID_FLAG_CLEARED) { log_debug("%s: %zu cleared", __func__, len); tty_clear_line(tty, wp, aty, atx + ux, width, last.bg); } else { - tty_attributes(tty, &last, wp); tty_cursor(tty, atx + ux, aty); tty_putn(tty, buf, len, width); } @@ -1322,11 +1322,11 @@ tty_draw_line(struct tty *tty, const struct window_pane *wp, } } if (len != 0 && ((~last.flags & GRID_FLAG_CLEARED) || last.bg != 8)) { + tty_attributes(tty, &last, wp); if (last.flags & GRID_FLAG_CLEARED) { log_debug("%s: %zu cleared (end)", __func__, len); tty_clear_line(tty, wp, aty, atx + ux, width, last.bg); } else { - tty_attributes(tty, &last, wp); tty_cursor(tty, atx + ux, aty); tty_putn(tty, buf, len, width); }