aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHimbeer <himbeer@disroot.org>2024-07-02 17:01:43 +0200
committerHimbeer <himbeer@disroot.org>2024-07-02 17:01:43 +0200
commit47f8d8460a6dca59118c2eff652f803a816ec8ae (patch)
treed4af45d2affac4493d0c75a7dcb50076a776fa4c
parent522a72f5ed9128441ce979c8a723fd9601aba1ba (diff)
vfs: Make root directory a regular node
-rw-r--r--src/lib/vfs.zig10
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 {