From 22f20d47adb24d7e6bbad4ccef3f2a9c43f8b900 Mon Sep 17 00:00:00 2001 From: xamidev Date: Sun, 10 May 2026 19:37:32 +0200 Subject: [PATCH] Line discipline for carriage return + ps/kill kshell commands --- src/io/term/term.c | 16 ++++++++++ src/kapps/kshell.c | 77 ++++++++++++++++++++++++++++++++++++++++------ 2 files changed, 84 insertions(+), 9 deletions(-) diff --git a/src/io/term/term.c b/src/io/term/term.c index e3bd2ca..e7af50e 100644 --- a/src/io/term/term.c +++ b/src/io/term/term.c @@ -50,9 +50,17 @@ void internal_putc(int c, void *_) if (init.terminal) { if (panic_count == 0) { spinlock_acquire(&term_lock); + if (ch == '\n') { + char cr = '\r'; + flanterm_write(ft_ctx, &cr, 1); + } flanterm_write(ft_ctx, &ch, 1); spinlock_release(&term_lock); } else { + if (ch == '\n') { + char cr = '\r'; + flanterm_write(ft_ctx, &cr, 1); + } flanterm_write(ft_ctx, &ch, 1); } } @@ -82,9 +90,17 @@ void debug_putc(int c, void *_) if (init.terminal && (!init.all || panic_count > 0)) { if (panic_count == 0) { spinlock_acquire(&term_lock); + if (ch == '\n') { + char cr = '\r'; + flanterm_write(ft_ctx, &cr, 1); + } flanterm_write(ft_ctx, &ch, 1); spinlock_release(&term_lock); } else { + if (ch == '\n') { + char cr = '\r'; + flanterm_write(ft_ctx, &cr, 1); + } flanterm_write(ft_ctx, &ch, 1); } } diff --git a/src/kapps/kshell.c b/src/kapps/kshell.c index fa44b51..01f0dd4 100644 --- a/src/kapps/kshell.c +++ b/src/kapps/kshell.c @@ -13,6 +13,7 @@ #include #include