Fix the CSI J (Erase in display ED) escape code not removing line continued markers

Fixes #2809

Remains to write tests for this.
This commit is contained in:
Kovid Goyal 2020-06-29 14:17:40 +05:30
parent f0c3641ebd
commit e2e701460b
No known key found for this signature in database
GPG Key ID: 06BC317B515ACE7C
4 changed files with 11 additions and 0 deletions

View File

@ -23,6 +23,9 @@ To update |kitty|, :doc:`follow the instructions <binary>`.
- Wayland: Fix a crash when using animated mouse cursors (:iss:`2810`)
- Fix the CSI J (Erase in display ED) escape code not removing line continued
markers (:iss:`2809`)
0.18.1 [2020-06-23]
--------------------

View File

@ -51,6 +51,12 @@ linebuf_mark_line_clean(LineBuf *self, index_type y) {
self->line_attrs[y] &= ~TEXT_DIRTY_MASK;
}
void
linebuf_mark_line_as_not_continued(LineBuf *self, index_type y) {
self->line_attrs[y] &= ~CONTINUED_MASK;
}
static PyObject*
clear(LineBuf *self, PyObject *a UNUSED) {
#define clear_doc "Clear all lines in this LineBuf"

View File

@ -96,6 +96,7 @@ void linebuf_set_attribute(LineBuf *, unsigned int , unsigned int );
void linebuf_rewrap(LineBuf *self, LineBuf *other, index_type *, index_type *, HistoryBuf *, index_type *, index_type *);
void linebuf_mark_line_dirty(LineBuf *self, index_type y);
void linebuf_mark_line_clean(LineBuf *self, index_type y);
void linebuf_mark_line_as_not_continued(LineBuf *self, index_type y);
unsigned int linebuf_char_width_at(LineBuf *self, index_type x, index_type y);
void linebuf_refresh_sprite_positions(LineBuf *self);
void historybuf_add_line(HistoryBuf *self, const Line *line);

View File

@ -1188,6 +1188,7 @@ screen_erase_in_display(Screen *self, unsigned int how, bool private) {
line_apply_cursor(self->linebuf->line, self->cursor, 0, self->columns, true);
}
linebuf_mark_line_dirty(self->linebuf, i);
linebuf_mark_line_as_not_continued(self->linebuf, i);
}
self->is_dirty = true;
self->selection = EMPTY_SELECTION;