mirror of
https://codeberg.org/dnkl/foot.git
synced 2026-03-05 01:40:41 -05:00
term/vt: only do reverse-wrapping (‘bw’) on cub1
Foot currently does reverse-wrapping (‘auto_left_margin’, or ’bw’) on
everything that calls ‘term_cursor_left()’. This is wrong; it should
only be done for cub1. From man terminfo:
auto_left_margin | bw | bw | cub1 wraps from column 0 to last
column
This patch moves the reverse-wrapping logic from term_cursor_left() to
the handling of BS (backspace).
Closes #441
This commit is contained in:
parent
0b3053f612
commit
5be2c53d8c
2 changed files with 18 additions and 40 deletions
17
vt.c
17
vt.c
|
|
@ -142,8 +142,21 @@ action_execute(struct terminal *term, uint8_t c)
|
|||
#else
|
||||
if (term->grid->cursor.lcf)
|
||||
term->grid->cursor.lcf = false;
|
||||
else
|
||||
term_cursor_left(term, 1);
|
||||
else {
|
||||
/* Reverse wrap */
|
||||
if (unlikely(term->grid->cursor.point.col == 0) &&
|
||||
likely(term->reverse_wrap && term->auto_margin))
|
||||
{
|
||||
if (term->grid->cursor.point.row <= term->scroll_region.start) {
|
||||
/* Don’t wrap past, or inside, the scrolling region(?) */
|
||||
} else
|
||||
term_cursor_to(
|
||||
term,
|
||||
term->grid->cursor.point.row - 1,
|
||||
term->cols - 1);
|
||||
} else
|
||||
term_cursor_left(term, 1);
|
||||
}
|
||||
#endif
|
||||
break;
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue