diff options
Diffstat (limited to 'src')
-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 { |