Use right cell for empty check.

This commit is contained in:
Nicholas Marriott
2026-01-21 15:35:33 +00:00
parent 35485f2b5e
commit 58e498c9d3

View File

@@ -89,7 +89,7 @@ tty_draw_line_clear(struct tty *tty, u_int px, u_int py, u_int nx,
/* Is this cell empty? */ /* Is this cell empty? */
static u_int static u_int
tty_draw_line_get_empty(struct grid_cell *gc, u_int nx) tty_draw_line_get_empty(const struct grid_cell *gc, u_int nx)
{ {
u_int empty = 0; u_int empty = 0;
@@ -113,7 +113,8 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int px, u_int py, u_int nx,
struct colour_palette *palette) struct colour_palette *palette)
{ {
struct grid *gd = s->grid; struct grid *gd = s->grid;
struct grid_cell gc, *gcp, ngc, last; struct grid_cell gc, ngc, last;
const struct grid_cell *gcp;
struct grid_line *gl; struct grid_line *gl;
u_int i, j, last_i, cx, ex, width; u_int i, j, last_i, cx, ex, width;
u_int cellsize, bg; u_int cellsize, bg;
@@ -233,7 +234,7 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int px, u_int py, u_int nx,
if (i >= ex) if (i >= ex)
empty = 1; empty = 1;
else else
empty = tty_draw_line_get_empty(&gc, nx - i); empty = tty_draw_line_get_empty(gcp, nx - i);
/* Work out the next state. */ /* Work out the next state. */
if (empty != 0) if (empty != 0)
@@ -242,7 +243,7 @@ tty_draw_line(struct tty *tty, struct screen *s, u_int px, u_int py, u_int nx,
next_state = TTY_DRAW_LINE_SAME; next_state = TTY_DRAW_LINE_SAME;
else if (gcp->flags & GRID_FLAG_PADDING) else if (gcp->flags & GRID_FLAG_PADDING)
next_state = TTY_DRAW_LINE_PAD; next_state = TTY_DRAW_LINE_PAD;
else if (grid_cells_look_equal(&gc, &last)) { else if (grid_cells_look_equal(gcp, &last)) {
if (gcp->data.size > (sizeof buf) - len) if (gcp->data.size > (sizeof buf) - len)
next_state = TTY_DRAW_LINE_FLUSH; next_state = TTY_DRAW_LINE_FLUSH;
else else