| ... | ... | @@ -7119,9 +7119,10 @@ fn dirDeleteFileWasi(userdata: ?*anyopaque, dir: Dir, sub_path: []const u8) Dir. |
| 7119 | 7119 | if (builtin.link_libc) return dirDeleteFilePosix(userdata, dir, sub_path); |
| 7120 | 7120 | const t: *Threaded = @ptrCast(@alignCast(userdata)); |
| 7121 | 7121 | _ = t; |
| 7122 | const wasi = std.os.wasi; |
| 7122 | 7123 | const syscall: Syscall = try .start(); |
| 7123 | 7124 | while (true) { |
| 7124 | | const res = std.os.wasi.path_unlink_file(dir.handle, sub_path.ptr, sub_path.len); |
| 7125 | const res = wasi.path_unlink_file(dir.handle, sub_path.ptr, sub_path.len); |
| 7125 | 7126 | switch (res) { |
| 7126 | 7127 | .SUCCESS => { |
| 7127 | 7128 | syscall.finish(); |
| ... | ... | @@ -7131,11 +7132,35 @@ fn dirDeleteFileWasi(userdata: ?*anyopaque, dir: Dir, sub_path: []const u8) Dir. |
| 7131 | 7132 | try syscall.checkCancel(); |
| 7132 | 7133 | continue; |
| 7133 | 7134 | }, |
| 7135 | .ACCES, .PERM => |e| { |
| 7136 | const original_error: Dir.DeleteFileError = switch (e) { |
| 7137 | .ACCES => error.AccessDenied, |
| 7138 | .PERM => error.PermissionDenied, |
| 7139 | else => unreachable, |
| 7140 | }; |
| 7141 | var stat: wasi.filestat_t = undefined; |
| 7142 | while (true) { |
| 7143 | try syscall.checkCancel(); |
| 7144 | switch (wasi.path_filestat_get(dir.handle, .{}, sub_path.ptr, sub_path.len, &stat)) { |
| 7145 | .SUCCESS => { |
| 7146 | syscall.finish(); |
| 7147 | break; |
| 7148 | }, |
| 7149 | .INTR => continue, |
| 7150 | else => { |
| 7151 | syscall.finish(); |
| 7152 | return original_error; |
| 7153 | }, |
| 7154 | } |
| 7155 | } |
| 7156 | if (stat.filetype == .DIRECTORY) |
| 7157 | return error.IsDir |
| 7158 | else |
| 7159 | return original_error; |
| 7160 | }, |
| 7134 | 7161 | else => |e| { |
| 7135 | 7162 | syscall.finish(); |
| 7136 | 7163 | switch (e) { |
| 7137 | | .ACCES => return error.AccessDenied, |
| 7138 | | .PERM => return error.PermissionDenied, |
| 7139 | 7164 | .BUSY => return error.FileBusy, |
| 7140 | 7165 | .FAULT => |err| return errnoBug(err), |
| 7141 | 7166 | .IO => return error.FileSystem, |