vt: tag cells that were form-feed:ed, to allow correct text reflow

To handle text reflow correctly when a line has a printable character
in the last column, but was still line breaked, we need to track the
fact that the slave inserted a line break here.

Otherwise, when the window width is increased, we'll end up pulling up
the next line, when we really should have inserted a line break.
This commit is contained in:
Daniel Eklöf 2020-02-10 21:52:14 +01:00
parent 3004c650ef
commit 4a169f5643
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
4 changed files with 17 additions and 4 deletions

View file

@ -1055,7 +1055,10 @@ reflow(struct terminal *term, struct row **new_grid, int new_cols, int new_rows,
* *entire* old line was empty.
*/
if (empty_count < old_cols && old_row->cells[old_cols - 1].wc == 0) {
if (empty_count < old_cols &&
(old_row->cells[old_cols - 1].wc == 0 ||
old_row->cells[old_cols - 1].attrs.linefeed))
{
new_col_idx = 0;
new_row_idx = (new_row_idx + 1) & (new_rows - 1);