From c06de7edc6c7b620f1382bdcf6e77e8a91819a63 Mon Sep 17 00:00:00 2001 From: Alec Murphy Date: Fri, 12 Sep 2025 16:57:56 -0400 Subject: [PATCH] System/Libraries/FileSystem: Add FileSystem.CreatePath() --- System/Libraries/FileSystem.HC | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/System/Libraries/FileSystem.HC b/System/Libraries/FileSystem.HC index d35a1f7..1027441 100644 --- a/System/Libraries/FileSystem.HC +++ b/System/Libraries/FileSystem.HC @@ -27,6 +27,7 @@ extern I64 @plan9fs_write_file(U8* path, U64 buffer, I64 size); class @filesystem { I64 root_fs_type; + Bool (*CreatePath)(U8* path); @dir_entry (*GetFiles)(U8* path); U8* (*GetFileExtension)(U8* path); U0 (*Init)(); @@ -225,6 +226,31 @@ I64 @filesystem_write_file(U8* path, U8* buffer, I64 size) return NULL; } +Bool @filesystem_create_path(U8* path) +{ + if (!path) + return FALSE; + U8 buf[512]; + I64 type = @filesystem_get_type(path); + switch (type) { + case FS_TYPE_SYSTEM: + return FALSE; + SysHlt; + break; + case FS_TYPE_REDSEA: + StrPrint(&buf, "%c:%s", ToUpper(path[12]), path + 13); + return Cd(&buf, TRUE); + break; + case FS_TYPE_9P: + return FALSE; + break; + default: + break; + } + return NULL; +} + +FileSystem.CreatePath = &@filesystem_create_path; FileSystem.GetFiles = &@filesystem_get_files; FileSystem.GetFileExtension = &@filesystem_get_file_extension; FileSystem.PathExists = &@filesystem_path_exists;