Fix continued lines not having their continued status reset on line feed

Fixes #4837
This commit is contained in:
Kovid Goyal 2022-03-16 15:20:25 +05:30
parent b444f4636e
commit 0a5c16363c
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
3 changed files with 16 additions and 0 deletions

View File

@ -87,6 +87,9 @@ Detailed list of changes
- Bash integration: Prevent shell integration code from running twice if user enables both automatic and manual integration
- Fix continued lines not having their continued status reset on line feed (:iss:`4837`)
0.24.4 [2022-03-03]
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

View File

@ -1355,6 +1355,7 @@ screen_linefeed(Screen *self) {
bool in_margins = cursor_within_margins(self);
screen_index(self);
if (self->modes.mLNM) screen_carriage_return(self);
if (self->cursor->y < self->lines) linebuf_mark_line_as_not_continued(self->linebuf, self->cursor->y);
screen_ensure_bounds(self, false, in_margins);
}

View File

@ -293,6 +293,18 @@ def test_resize(self):
self.ae(str(s.linebuf), '55555\n66666\n77777\n88888\n99999')
s.resize(5, 2)
self.ae(str(s.linebuf), '88\n88\n99\n99\n9')
s = self.create_screen()
s.draw('a' * s.columns)
s.linefeed(), s.carriage_return()
s.draw('bb')
s.resize(s.lines, s.columns - 2)
self.ae(str(s.linebuf), 'aaa\naa\nbb\n\n')
s.cursor.y = s.cursor.x = 0
s.draw('x' * len(str(s.line(0))))
s.linefeed(), s.carriage_return()
s.draw('x' * len(str(s.line(1))))
s.resize(s.lines, s.columns + 4)
self.ae(str(s.linebuf), 'xxx\nxx\nbb\n\n')
def test_cursor_after_resize(self):