From 45fcf8e8349b5159ced4ea885a99c25a89b0ebae Mon Sep 17 00:00:00 2001 From: Karina Date: Sun, 28 Dec 2025 00:32:52 +0400 Subject: [PATCH] fix: backspace --- .tokeignore | 3 +++ kernel/inc/drivers/keyboard.h | 3 +++ kernel/src/drivers/console.c | 5 +++++ kernel/src/drivers/keyboard.c | 3 +++ kernel/src/kmain.c | 2 +- kernel/src/shell/ksh.c | 3 +++ 6 files changed, 18 insertions(+), 1 deletion(-) diff --git a/.tokeignore b/.tokeignore index 3ed3a53..9b34107 100644 --- a/.tokeignore +++ b/.tokeignore @@ -2,4 +2,7 @@ build .venv kernel/data +*.md +tools/ +bootloader/ bootloader/src/uefi \ No newline at end of file diff --git a/kernel/inc/drivers/keyboard.h b/kernel/inc/drivers/keyboard.h index 7924e26..7bba834 100644 --- a/kernel/inc/drivers/keyboard.h +++ b/kernel/inc/drivers/keyboard.h @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// Copyright (c) 2025 0xKarinyash + #ifndef KEYBOARD_H #define KEYBOARD_H diff --git a/kernel/src/drivers/console.c b/kernel/src/drivers/console.c index c2676a1..8e8de33 100644 --- a/kernel/src/drivers/console.c +++ b/kernel/src/drivers/console.c @@ -31,6 +31,7 @@ static SG_Context *ctx_ptr = nullptr; static SG_Point s_cursor_pos = {0}; static SG_Font s_font = {0}; static u32 s_color = COLOR_WHITE; +static u32 s_bg_color = COLOR_BLACK; void console_init(SG_Context *ctx) { ctx_ptr = ctx; @@ -50,6 +51,7 @@ void console_clear(u32 color) { s_cursor_pos.x = 0; s_cursor_pos.y = 0; + s_bg_color = color; } SG_Context* console_get_context() { @@ -77,6 +79,9 @@ static void console_putc(char c) { s_cursor_pos.y += s_font.h; } else if (c == '\t') { s_cursor_pos.x += s_font.w * 4; + } else if (c == '\b') { + s_cursor_pos.x -= s_font.w; + sg_draw_rect(ctx_ptr, &s_cursor_pos, s_font.w, s_font.h, s_bg_color); } else { sg_draw_char_bitmap(ctx_ptr, &s_cursor_pos, c, s_color, &s_font); s_cursor_pos.x += s_font.w; diff --git a/kernel/src/drivers/keyboard.c b/kernel/src/drivers/keyboard.c index 5bf4978..4227cdc 100644 --- a/kernel/src/drivers/keyboard.c +++ b/kernel/src/drivers/keyboard.c @@ -1,3 +1,6 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// Copyright (c) 2025 0xKarinyash + #include #include diff --git a/kernel/src/kmain.c b/kernel/src/kmain.c index d1c6046..c3dd911 100644 --- a/kernel/src/kmain.c +++ b/kernel/src/kmain.c @@ -52,7 +52,7 @@ void kmain(Bootinfo* info) { kprintf("ksh_> "); char buff[32]; kgets(buff, 32); - kprintf("You typed: %s", &buff); + kprintf("You typed: %s", buff); __asm__ volatile ("sti"); diff --git a/kernel/src/shell/ksh.c b/kernel/src/shell/ksh.c index e69de29..0fcf39f 100644 --- a/kernel/src/shell/ksh.c +++ b/kernel/src/shell/ksh.c @@ -0,0 +1,3 @@ +// SPDX-License-Identifier: GPL-3.0-or-later +// Copyright (c) 2025 0xKarinyash +