Merge branch 'cursor-outside-visible-area-on-reflow' into master

This commit is contained in:
Daniel Eklöf 2020-09-10 07:37:21 +02:00
commit c841ab1ee1
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 5 additions and 6 deletions

View file

@ -114,6 +114,7 @@
**not** include `Alt`.
* Clipboard (or primary selection) is now cleared when receiving an
OSC-52 command with an invalid base64 encoded payload.
* Cursor position being set outside the grid when reflowing text.
### Security

10
grid.c
View file

@ -331,16 +331,14 @@ grid_reflow(struct grid *grid, int new_rows, int new_cols,
cursor.row -= grid->offset;
while (cursor.row < 0)
cursor.row += grid->num_rows;
assert(cursor.row >= 0);
assert(cursor.row < grid->num_rows);
cursor.row = min(cursor.row, new_screen_rows - 1);
assert(cursor.col >= 0 && cursor.col < new_cols);
saved_cursor.row -= grid->offset;
while (saved_cursor.row < 0)
saved_cursor.row += grid->num_rows;
assert(saved_cursor.row >= 0);
assert(saved_cursor.row < grid->num_rows);
saved_cursor.row = min(saved_cursor.row, new_screen_rows - 1);
assert(saved_cursor.col >= 0 && saved_cursor.col < new_cols);
grid->cursor.point = cursor;
grid->saved_cursor.point = saved_cursor;