From f3ea22935f7d841574a790327fd461ad4adf265e Mon Sep 17 00:00:00 2001 From: Daniel Hammer Date: Tue, 24 Mar 2026 17:34:07 +0100 Subject: [PATCH] fix: fix SYS_GETUSER missing in syscall switch, use getuser in shell username print --- kernel/src/Api/Syscall.cpp | 6 ++++++ programs/src/shell/main.cpp | 17 +++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/kernel/src/Api/Syscall.cpp b/kernel/src/Api/Syscall.cpp index 5948287..b0af8fa 100644 --- a/kernel/src/Api/Syscall.cpp +++ b/kernel/src/Api/Syscall.cpp @@ -337,6 +337,12 @@ namespace Montauk { return Sys_SetTZ((int32_t)frame->arg1); case SYS_GETTZ: return Sys_GetTZ(); + case SYS_SETUSER: + if (!ValidUserPtr(frame->arg2)) return -1; + return Sys_SetUser((int)frame->arg1, (const char*)frame->arg2); + case SYS_GETUSER: + if (!ValidUserPtr(frame->arg1)) return -1; + return Sys_GetUser((char*)frame->arg1, frame->arg2); default: return -1; } diff --git a/programs/src/shell/main.cpp b/programs/src/shell/main.cpp index 56dcfe6..d0729c1 100644 --- a/programs/src/shell/main.cpp +++ b/programs/src/shell/main.cpp @@ -17,14 +17,15 @@ char session_home[64] = ""; // ---- Session info (read once at startup) ---- void read_session() { - auto doc = montauk::config::load("session"); - const char* name = doc.get_string("session.username", ""); - if (name[0]) { - scopy(session_user, name, sizeof(session_user)); - scopy(session_home, "0:/users/", sizeof(session_home)); - scat(session_home, session_user, sizeof(session_home)); - } - doc.destroy(); + // TODO Why is getuser treated as not defined in VSCode intellisense? + + montauk::getuser( + (char *)&session_user, // Buffer + 32 // Buffer max size + ); + + scopy(session_home, "0:/users/", sizeof(session_home)); + scat(session_home, session_user, sizeof(session_home)); } // ---- Command history ----