Fix reverse attribute in status line, GitHub issue 1709.

pull/1731/head
nicm 2019-05-03 10:00:48 +00:00
parent 5d9e591ae8
commit 4bb48998e0
1 changed files with 11 additions and 6 deletions

View File

@ -320,7 +320,7 @@ status_redraw(struct client *c)
struct session *s = c->session;
struct screen_write_ctx ctx;
struct grid_cell gc;
u_int lines, i, width = c->tty.sx;
u_int lines, i, n, width = c->tty.sx;
int flags, force = 0, changed = 0;
struct options_entry *o;
union options_value *ov;
@ -364,15 +364,17 @@ status_redraw(struct client *c)
/* Write the status lines. */
o = options_get(s->options, "status-format");
if (o == NULL)
screen_write_clearscreen(&ctx, gc.bg);
else {
if (o == NULL) {
for (n = 0; n < width * lines; n++)
screen_write_putc(&ctx, &gc, ' ');
} else {
for (i = 0; i < lines; i++) {
screen_write_cursormove(&ctx, 0, i, 0);
ov = options_array_get(o, i);
if (ov == NULL) {
screen_write_clearline(&ctx, gc.bg);
for (n = 0; n < width; n++)
screen_write_putc(&ctx, &gc, ' ');
continue;
}
sle = &sl->entries[i];
@ -386,7 +388,10 @@ status_redraw(struct client *c)
}
changed = 1;
screen_write_clearline(&ctx, gc.bg);
for (n = 0; n < width; n++)
screen_write_putc(&ctx, &gc, ' ');
screen_write_cursormove(&ctx, 0, i, 0);
status_free_ranges(&sle->ranges);
format_draw(&ctx, &gc, width, expanded, &sle->ranges);