diff options
| author | Jakub Konka <kubkon@jakubkonka.com> | 2023-09-01 10:13:04 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-09-01 10:13:04 +0200 |
| commit | 5dc2db80554d2b50075ee7e9a9ee2ddf67e25a74 (patch) | |
| tree | deadbb575daaa4822d15d7f3d43e46b19ab3945a /lib/std/fs.zig | |
| parent | 43b27d47c98e0ada00db828ddf410372c6ded66a (diff) | |
| parent | 01f9cdd21a8f18941636c061a5985a040e4a4bcd (diff) | |
| download | zig-5dc2db80554d2b50075ee7e9a9ee2ddf67e25a74.tar.gz zig-5dc2db80554d2b50075ee7e9a9ee2ddf67e25a74.zip | |
Merge pull request #17029 from squeek502/wasi-statFile-libc
Fix `Dir.statFile` for WASI when linking libc
Diffstat (limited to 'lib/std/fs.zig')
| -rw-r--r-- | lib/std/fs.zig | 24 |
1 files changed, 10 insertions, 14 deletions
diff --git a/lib/std/fs.zig b/lib/std/fs.zig index 4a0f37b855..6e91f3d591 100644 --- a/lib/std/fs.zig +++ b/lib/std/fs.zig @@ -2653,21 +2653,17 @@ pub const Dir = struct { /// /// `sub_path` may be absolute, in which case `self` is ignored. pub fn statFile(self: Dir, sub_path: []const u8) StatFileError!Stat { - switch (builtin.os.tag) { - .windows => { - var file = try self.openFile(sub_path, .{}); - defer file.close(); - return file.stat(); - }, - .wasi => { - const st = try os.fstatatWasi(self.fd, sub_path, os.wasi.LOOKUP_SYMLINK_FOLLOW); - return Stat.fromSystem(st); - }, - else => { - const st = try os.fstatat(self.fd, sub_path, 0); - return Stat.fromSystem(st); - }, + if (builtin.os.tag == .windows) { + var file = try self.openFile(sub_path, .{}); + defer file.close(); + return file.stat(); + } + if (builtin.os.tag == .wasi and !builtin.link_libc) { + const st = try os.fstatatWasi(self.fd, sub_path, os.wasi.LOOKUP_SYMLINK_FOLLOW); + return Stat.fromSystem(st); } + const st = try os.fstatat(self.fd, sub_path, 0); + return Stat.fromSystem(st); } const Permissions = File.Permissions; |
