diff --git a/CHANGELOG.md b/CHANGELOG.md index 67d38093..8bef0278 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -43,6 +43,8 @@ that it is (much) slower compared to previous foot versions. Use the **scrollback.multiplier** option in `foot.ini` if you find the new speed too slow (https://codeberg.org/dnkl/foot/issues/144). +* Cursor left movements moving cursor to wrong location when cursor is + “beyond” the right margin. ### Security diff --git a/terminal.c b/terminal.c index 0840a45c..97840824 100644 --- a/terminal.c +++ b/terminal.c @@ -1728,6 +1728,11 @@ term_cursor_home(struct terminal *term) void term_cursor_left(struct terminal *term, int count) { + if (unlikely(term->grid->cursor.lcf)) + count--; + + assert(count >= 0); + int move_amount = min(term->grid->cursor.point.col, count); term->grid->cursor.point.col -= move_amount; assert(term->grid->cursor.point.col >= 0);