diff --git a/core_library/filesystem.c b/core_library/filesystem.c index 5602832..49c7569 100644 --- a/core_library/filesystem.c +++ b/core_library/filesystem.c @@ -52,9 +52,11 @@ OS_API S8_String OS_GetExePath(MA_Arena *arena) { } OS_API S8_String OS_GetExeDir(MA_Arena *arena) { - S8_String path = OS_GetExePath(arena); + MA_Checkpoint scratch = MA_GetScratch(); + S8_String path = OS_GetExePath(scratch.arena); path = S8_ChopLastSlash(path); - path.str[path.len] = 0; + path = S8_Copy(arena, path); + MA_ReleaseScratch(scratch); return path; } @@ -421,9 +423,12 @@ OS_API bool OS_IsAbsolute(S8_String path) { } OS_API S8_String OS_GetExeDir(MA_Arena *arena) { - S8_String path = OS_GetExePath(arena); + MA_Checkpoint scratch = MA_GetScratch(); + S8_String path = OS_GetExePath(scratch.arena); S8_String dir = S8_ChopLastSlash(path); + IO_Printf("DIR: %.*s\n", S8_Expand(dir)); S8_String copy = S8_Copy(arena, dir); + MA_ReleaseScratch(scratch); return copy; } diff --git a/tests/test_main.cpp b/tests/test_main.cpp index ad16fc2..967e67f 100644 --- a/tests/test_main.cpp +++ b/tests/test_main.cpp @@ -20,8 +20,8 @@ int main() { TestBootstrapExclusive(); TestBootstrapArenaClear(); - // TestClexer(); - // IO_Printf("TestClexer() - DONE\n"); + TestClexer(); + IO_Printf("TestClexer() - DONE\n"); // Unicode iteration over codepoints using For {