term: erase: use erase_line() whenever a range corresponds to a full line

This commit is contained in:
Daniel Eklöf 2025-09-25 16:57:41 +02:00
parent c34f063307
commit 44a674edb8
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -2648,7 +2648,10 @@ term_erase(struct terminal *term, int start_row, int start_col,
if (start_row == end_row) {
struct row *row = grid_row(term->grid, start_row);
erase_cell_range(term, row, start_col, end_col);
if (unlikely(start_col == 0 && end_col == term->cols - 1))
erase_line(term, row);
else
erase_cell_range(term, row, start_col, end_col);
sixel_overwrite_by_row(term, start_row, start_col, end_col - start_col + 1);
return;
}
@ -2664,7 +2667,10 @@ term_erase(struct terminal *term, int start_row, int start_col,
sixel_overwrite_by_rectangle(
term, start_row + 1, 0, end_row - start_row, term->cols);
erase_cell_range(term, grid_row(term->grid, end_row), 0, end_col);
if (unlikely(end_col == term->cols - 1))
erase_line(term, grid_row(term->grid, end_row));
else
erase_cell_range(term, grid_row(term->grid, end_row), 0, end_col);
sixel_overwrite_by_row(term, end_row, 0, end_col + 1);
}