From 1e8c290a9937fb74ff7ec2b7ea288b2626ceba3c Mon Sep 17 00:00:00 2001 From: Lizzy Fleckenstein Date: Tue, 19 Dec 2023 02:08:53 +0100 Subject: handle backspace --- stage3/main.c | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) (limited to 'stage3/main.c') diff --git a/stage3/main.c b/stage3/main.c index c8ff971..30f1bbd 100644 --- a/stage3/main.c +++ b/stage3/main.c @@ -33,13 +33,18 @@ void keyboard_handler() char c = keymap[e->data.scancode]; if (c != '\0') { - print_char(c); - - if (c == '\n') { + if (c == '\b') { + if (buffer.len > 0) { + print_char(c); + buffer.len--; + } + } else if (c == '\n') { + print_char(c); shell_run_cmd(buffer); buffer.len = 0; print(S("$ ")); } else { + print_char(c); if (buffer.len == cap) buffer.data = realloc(buffer.data, cap = cap ? cap*2 : 1); buffer.data[buffer.len++] = c; -- cgit v1.2.3