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

@ -42,7 +42,8 @@ struct attributes {
uint32_t have_fg:1;
uint32_t have_bg:1;
uint32_t selected:2;
uint32_t reserved:3;
uint32_t linefeed:1;
uint32_t reserved:2;
uint32_t bg:24;
};
static_assert(sizeof(struct attributes) == 8, "bad size");
@ -403,6 +404,7 @@ void term_scroll_partial(
void term_scroll_reverse_partial(
struct terminal *term, struct scroll_region region, int rows);
void term_formfeed(struct terminal *term);
void term_linefeed(struct terminal *term);
void term_reverse_index(struct terminal *term);