term: line-wrap: don't move cursor outside the grid

Remove assertion that row be less than the scrolling region end. The
cursor may in fact be *inside* the margin.

Inside the margin, content never scrolls, but we must make sure we
don't move the cursor outside the grid.
This commit is contained in:
Daniel Eklöf 2020-07-16 08:47:37 +02:00
parent 674f0dd0fc
commit 7f6ed98a83
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F

View file

@ -2355,12 +2355,15 @@ print_linewrap(struct terminal *term)
}
term->grid->cursor.lcf = false;
if (term->grid->cursor.point.row == term->scroll_region.end - 1)
const int row = term->grid->cursor.point.row;
if (row == term->scroll_region.end - 1)
term_scroll(term, 1);
else {
assert(term->grid->cursor.point.row < term->scroll_region.end - 1);
term->grid->cursor.point.row++;
term->grid->cur_row = grid_row(term->grid, term->grid->cursor.point.row);
const int new_row = min(row + 1, term->rows - 1);
term->grid->cursor.point.row = new_row;
term->grid->cur_row = grid_row(term->grid, new_row);
}
term->grid->cursor.point.col = 0;