diff options
author | Himbeer <himbeer@disroot.org> | 2024-07-02 17:01:43 +0200 |
---|---|---|
committer | Himbeer <himbeer@disroot.org> | 2024-07-02 17:01:43 +0200 |
commit | 47f8d8460a6dca59118c2eff652f803a816ec8ae (patch) | |
tree | d4af45d2affac4493d0c75a7dcb50076a776fa4c | |
parent | 522a72f5ed9128441ce979c8a723fd9601aba1ba (diff) |
vfs: Make root directory a regular node
-rw-r--r-- | src/lib/vfs.zig | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/lib/vfs.zig b/src/lib/vfs.zig index 3a1fbff..6a09d58 100644 --- a/src/lib/vfs.zig +++ b/src/lib/vfs.zig @@ -8,7 +8,7 @@ const sysexchange = @import("sysexchange.zig"); const mem = std.mem; -var root: Tree = undefined; +var root: Node = .{ .data = .{ .name = "", .resource = .{ .dir = undefined } } }; pub const Error = error{ NotFound, @@ -163,7 +163,7 @@ pub const UserInfo = union(enum) { }; pub fn init(allocator: mem.Allocator) void { - root = Tree.init(allocator); + root.data.resource.dir = Tree.init(allocator); } pub fn find(path: []const u8) ?*Node { @@ -171,7 +171,7 @@ pub fn find(path: []const u8) ?*Node { // Error set is empty. var it = std.fs.path.ComponentIterator(.posix, u8).init(path) catch unreachable; - var tree = root; + var tree = root.data.resource.dir; while (it.next()) |component| { const node = tree.find(component.name) orelse return null; @@ -184,8 +184,8 @@ pub fn find(path: []const u8) ?*Node { } } - // Only reached if path has no components. - return null; + // No components, this is the root directory (/). + return &root; } pub fn provideResource(path: []const u8, resource: Resource) !void { |