From f75b1e5f07e73ef3caf4fad795cecb11a993159c Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Sun, 24 May 2026 12:25:51 +0100 Subject: [PATCH] Do not check overlays in tty_draw_line_clear, the caller should be doing it. --- screen-redraw.c | 6 +++--- tty-draw.c | 26 ++++++++------------------ tty.c | 4 +--- 3 files changed, 12 insertions(+), 24 deletions(-) diff --git a/screen-redraw.c b/screen-redraw.c index 0a343f69..f31b2e6c 100644 --- a/screen-redraw.c +++ b/screen-redraw.c @@ -1276,7 +1276,7 @@ screen_redraw_draw_pane(struct screen_redraw_ctx *ctx, struct window_pane *wp) struct screen *s = wp->screen; struct colour_palette *palette = &wp->palette; struct grid_cell defaults; - u_int i, j, woy, wx, wy, py, width; + u_int i, j, k, woy, wx, wy, py, width; struct visible_ranges *r; struct visible_range *ri; @@ -1333,8 +1333,8 @@ screen_redraw_draw_pane(struct screen_redraw_ctx *ctx, struct window_pane *wp) r = tty_check_overlay_range(tty, wx, wy, width); r = screen_redraw_get_visible_ranges(wp, wx, wy, width, r); tty_default_colours(&defaults, wp); - for (i = 0; i < r->used; i++) { - ri = &r->ranges[i]; + for (k = 0; k < r->used; k++) { + ri = &r->ranges[k]; if (ri->nx == 0) continue; tty_draw_line(tty, s, ri->px - wp->xoff, j, ri->nx, diff --git a/tty-draw.c b/tty-draw.c index 865fff60..24d8b711 100644 --- a/tty-draw.c +++ b/tty-draw.c @@ -46,10 +46,6 @@ static void tty_draw_line_clear(struct tty *tty, u_int px, u_int py, u_int nx, const struct grid_cell *defaults, u_int bg, int wrapped) { - struct visible_ranges *r; - struct visible_range *rr; - u_int i; - /* Nothing to clear. */ if (nx == 0) return; @@ -82,20 +78,14 @@ tty_draw_line_clear(struct tty *tty, u_int px, u_int py, u_int nx, } /* Couldn't use an escape sequence, use spaces. */ - r = tty_check_overlay_range(tty, px, py, nx); - for (i = 0; i < r->used; i++) { - rr = &r->ranges[i]; - if (rr->nx != 0) { - if (rr->px != 0 || !wrapped) - tty_cursor(tty, rr->px, py); - if (rr->nx == 1) - tty_putc(tty, ' '); - else if (rr->nx == 2) - tty_putn(tty, " ", 2, 2); - else - tty_repeat_space(tty, rr->nx); - } - } + if (px != 0 || !wrapped) + tty_cursor(tty, px, py); + if (nx == 1) + tty_putc(tty, ' '); + else if (nx == 2) + tty_putn(tty, " ", 2, 2); + else + tty_repeat_space(tty, nx); } /* Draw a line from screen to tty. */ diff --git a/tty.c b/tty.c index 2950043e..9d3ea5fb 100644 --- a/tty.c +++ b/tty.c @@ -1306,9 +1306,7 @@ tty_clear_area(struct tty *tty, const struct tty_ctx *ctx, u_int py, { struct client *c = tty->client; const struct grid_cell *defaults = &ctx->defaults; - struct visible_ranges *r; - struct visible_range *ri; - u_int i, yy, oy = 0; + u_int yy; char tmp[64]; log_debug("%s: %s, %u,%u at %u,%u", __func__, c->name, nx, ny, px, py);