CeDOS - Commit f0fc1f04

con/tty: Optimize cursor Do not reset cursor after every single character, but only after continuous block of characters.
Celina Sophie Kalus
Wed, 06 Dec 2023 01:28:59 +0100
2 files changed, 6 insertions(+), 8 deletions(-)
M kernel/drivers/tty.ckernel/drivers/tty.c

@@ -56,8 +56,6 @@ return i;

} int tty_write(int fd, char *buffer, uint32_t size) { - for (uint32_t i = 0; i < size; i++) { - std_con->write_c(buffer[i]); - } + std_con->write_n(buffer, size); return size; }
M kernel/drivers/vga_console.ckernel/drivers/vga_console.c

@@ -136,12 +136,12 @@ } else if (state == ESCAPE_N && c == ';') {

state = ESCAPE_M; } else if (state == ESCAPE_N && c == 'G') { column = n; - set_cursor(line, column); + //set_cursor(line, column); state = NORMAL; } else if (state == ESCAPE_M && c == 'H') { line = n; column = m; - set_cursor(line, column); + //set_cursor(line, column); state = NORMAL; } else if (state == ESCAPE_N && c == 'J') { switch (n) {

@@ -166,16 +166,16 @@ } else if (state != NORMAL) {

state = NORMAL; } else if (c == 0x08) { vga_con_backspace(); - set_cursor(line, column); + //set_cursor(line, column); } else { write_char(c); - set_cursor(line, column); + //set_cursor(line, column); } } void vga_con_write_n(const char *string, uint32_t num) { for (uint32_t i = 0; i < num; i++) { - write_char(string[0]); + vga_con_write_c(string[i]); } set_cursor(line, column); }