zig

fork of https://codeberg.org/ziglang/zig
Log | Files | Refs | README | LICENSE

commit d16a9b0acb14ad217849de2a59d91cd4648ac1a7 (tree)
parent 1a99c99ee99fa3ca43935fe7d7d0865145b82d4e
Author: Justin Braben <32079903+JustinBraben@users.noreply.github.com>
Date:   Wed, 27 Nov 2024 14:33:29 -0700

std.os.windows: Map PIPE_NOT_AVAILABLE from OpenFile() to error.NoDevice (#21938)


Diffstat:
Mlib/std/fs/File.zig | 1+
Mlib/std/os/windows.zig | 2++
Mlib/std/posix.zig | 2++
Mlib/std/process/Child.zig | 1+
Msrc/Builtin.zig | 1+
Msrc/Zcu/PerThread.zig | 1+
6 files changed, 8 insertions(+), 0 deletions(-)

diff --git a/lib/std/fs/File.zig b/lib/std/fs/File.zig @@ -39,6 +39,7 @@ pub const OpenError = error{ FileNotFound, AccessDenied, PipeBusy, + NoDevice, NameTooLong, /// WASI-only; file paths must be valid UTF-8. InvalidUtf8, diff --git a/lib/std/os/windows.zig b/lib/std/os/windows.zig @@ -132,6 +132,7 @@ pub fn OpenFile(sub_path_w: []const u16, options: OpenFileOptions) OpenError!HAN .SHARING_VIOLATION => return error.AccessDenied, .ACCESS_DENIED => return error.AccessDenied, .PIPE_BUSY => return error.PipeBusy, + .PIPE_NOT_AVAILABLE => return error.NoDevice, .OBJECT_PATH_SYNTAX_BAD => unreachable, .OBJECT_NAME_COLLISION => return error.PathAlreadyExists, .FILE_IS_A_DIRECTORY => return error.IsDir, @@ -801,6 +802,7 @@ pub fn CreateSymbolicLink( error.NotDir => return error.Unexpected, error.WouldBlock => return error.Unexpected, error.PipeBusy => return error.Unexpected, + error.NoDevice => return error.Unexpected, error.AntivirusInterference => return error.Unexpected, else => |e| return e, }; diff --git a/lib/std/posix.zig b/lib/std/posix.zig @@ -2946,6 +2946,7 @@ pub fn mkdiratW(dir_fd: fd_t, sub_path_w: []const u16, mode: u32) MakeDirError!v }) catch |err| switch (err) { error.IsDir => return error.Unexpected, error.PipeBusy => return error.Unexpected, + error.NoDevice => return error.Unexpected, error.WouldBlock => return error.Unexpected, error.AntivirusInterference => return error.Unexpected, else => |e| return e, @@ -3040,6 +3041,7 @@ pub fn mkdirW(dir_path_w: []const u16, mode: u32) MakeDirError!void { }) catch |err| switch (err) { error.IsDir => return error.Unexpected, error.PipeBusy => return error.Unexpected, + error.NoDevice => return error.Unexpected, error.WouldBlock => return error.Unexpected, error.AntivirusInterference => return error.Unexpected, else => |e| return e, diff --git a/lib/std/process/Child.zig b/lib/std/process/Child.zig @@ -743,6 +743,7 @@ fn spawnWindows(self: *ChildProcess) SpawnError!void { }) catch |err| switch (err) { error.PathAlreadyExists => return error.Unexpected, // not possible for "NUL" error.PipeBusy => return error.Unexpected, // not possible for "NUL" + error.NoDevice => return error.Unexpected, // not possible for "NUL" error.FileNotFound => return error.Unexpected, // not possible for "NUL" error.AccessDenied => return error.Unexpected, // not possible for "NUL" error.NameTooLong => return error.Unexpected, // not possible for "NUL" diff --git a/src/Builtin.zig b/src/Builtin.zig @@ -250,6 +250,7 @@ pub fn populateFile(comp: *Compilation, mod: *Module, file: *File) !void { error.BadPathName => unreachable, // it's always "builtin.zig" error.NameTooLong => unreachable, // it's always "builtin.zig" error.PipeBusy => unreachable, // it's not a pipe + error.NoDevice => unreachable, // it's not a pipe error.WouldBlock => unreachable, // not asking for non-blocking I/O error.FileNotFound => try writeFile(file, mod), diff --git a/src/Zcu/PerThread.zig b/src/Zcu/PerThread.zig @@ -133,6 +133,7 @@ pub fn astGenFile( error.BadPathName => unreachable, // it's a hex encoded name error.NameTooLong => unreachable, // it's a fixed size name error.PipeBusy => unreachable, // it's not a pipe + error.NoDevice => unreachable, // it's not a pipe error.WouldBlock => unreachable, // not asking for non-blocking I/O // There are no dir components, so you would think that this was // unreachable, however we have observed on macOS two processes racing