term: print_insert: early return

This commit is contained in:
Daniel Eklöf 2020-06-09 17:31:28 +02:00
parent 97221dd09b
commit 9df7e8fa07
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -2353,19 +2353,20 @@ print_insert(struct terminal *term, int width)
{ {
assert(width > 0); assert(width > 0);
if (unlikely(term->insert_mode)) { if (likely(!term->insert_mode))
struct row *row = term->grid->cur_row; return;
const size_t move_count = max(0, term->cols - term->grid->cursor.point.col - width);
memmove( struct row *row = term->grid->cur_row;
&row->cells[term->grid->cursor.point.col + width], const size_t move_count = max(0, term->cols - term->grid->cursor.point.col - width);
&row->cells[term->grid->cursor.point.col],
move_count * sizeof(struct cell));
/* Mark moved cells as dirty */ memmove(
for (size_t i = term->grid->cursor.point.col + width; i < term->cols; i++) &row->cells[term->grid->cursor.point.col + width],
row->cells[i].attrs.clean = 0; &row->cells[term->grid->cursor.point.col],
} move_count * sizeof(struct cell));
/* Mark moved cells as dirty */
for (size_t i = term->grid->cursor.point.col + width; i < term->cols; i++)
row->cells[i].attrs.clean = 0;
} }
void void