diff --git a/terminal.c b/terminal.c index 8804140b..268639dc 100644 --- a/terminal.c +++ b/terminal.c @@ -219,6 +219,24 @@ term_scroll_reverse(struct terminal *term, int rows) term_scroll_reverse_partial(term, term->scroll_region, rows); } +void +term_linefeed(struct terminal *term) +{ + if (term->cursor.row == term->scroll_region.end - 1) + term_scroll(term, 1); + else + term_cursor_down(term, 1); +} + +void +term_reverse_index(struct terminal *term) +{ + if (term->cursor.row == term->scroll_region.start) + term_scroll_reverse(term, 1); + else + term_cursor_up(term, 1); +} + static int linux_mouse_button_to_x(int button) { diff --git a/terminal.h b/terminal.h index 0ed7bcfe..f5e2cfa9 100644 --- a/terminal.h +++ b/terminal.h @@ -269,6 +269,9 @@ void term_scroll_partial( void term_scroll_reverse_partial( struct terminal *term, struct scroll_region region, int rows); +void term_linefeed(struct terminal *term); +void term_reverse_index(struct terminal *term); + void term_mouse_down(struct terminal *term, int button, int row, int col, bool shift, bool alt, bool ctrl); void term_mouse_up(struct terminal *term, int button, int row, int col,