diff --git a/src/console.c b/src/console.c index eaf8558..2ed88b6 100644 --- a/src/console.c +++ b/src/console.c @@ -375,3 +375,16 @@ void kmscon_console_write(struct kmscon_console *con, kmscon_buffer_write(con->cells, con->cursor_x, con->cursor_y, ch); con->cursor_x++; } + +void kmscon_console_newline(struct kmscon_console *con) +{ + if (!con) + return; + + con->cursor_x = 0; + con->cursor_y++; + if (con->cursor_y >= con->cells_y) { + con->cursor_y--; + kmscon_buffer_rotate(con->cells); + } +} diff --git a/src/console.h b/src/console.h index fe0e0b6..2b0cea4 100644 --- a/src/console.h +++ b/src/console.h @@ -104,3 +104,4 @@ void kmscon_console_map(struct kmscon_console *con); void kmscon_console_write(struct kmscon_console *con, const struct kmscon_char *ch); +void kmscon_console_newline(struct kmscon_console *con);