term: linefeed: explicitly clear LCF

LF should always clear LCF. Previously, it was done implicitly in
term_cursor_down(). I.e it was cleared as long as the cursor wasn't at
the bottom of the scrolling region
This commit is contained in:
Daniel Eklöf 2020-07-14 10:49:44 +02:00
parent cabcc615c1
commit 01c3a2635d
No known key found for this signature in database
GPG key ID: 5BBD4992C116573F
2 changed files with 6 additions and 2 deletions

View file

@ -96,8 +96,10 @@
(https://codeberg.org/dnkl/foot/issues/35).
* `C0::VT` to be processed as `C0::LF`. Previously, `C0::VT` would
only move the cursor down, but never scroll.
* HT (_Horizontal Tab_, or `\t`) no longer clears `LCF` (_Last Column
Flag_).
* `HT` (_Horizontal Tab_, or `\t`) no longer clears `LCF` (_Last
Column Flag_).
* `LF` now always clears `LCF`. Previously, it only cleared it when
the cursor was **not** at the bottom of the scrolling region.
### Security

View file

@ -1887,6 +1887,8 @@ void
term_linefeed(struct terminal *term)
{
term->grid->cur_row->linebreak = true;
term->grid->cursor.lcf = false;
if (term->grid->cursor.point.row == term->scroll_region.end - 1)
term_scroll(term, 1);
else