authorgravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-01-29 01:13:32-08:00
committergravatar for andrew@ziglang.orgAndrew Kelley <andrew@ziglang.org> 2026-01-29 18:40:56-08:00
log0a37ad2ec4daa04a845142508e0dd1326db7ee2d
treee89bb5cb9b05c7936045bb432a2ca7a7f529194b
parent3cc5dda7568b845d5002be4dd3181145ecc3f8bd

std.Io.File: handle DISK_FULL on windows


1 files changed, 4 insertions(+), 0 deletions(-)

lib/std/Io/Threaded.zig+4
...@@ -2730,6 +2730,7 @@ fn dirCreateDirPathOpenWindows(...@@ -2730,6 +2730,7 @@ fn dirCreateDirPathOpenWindows(
2730 // This can happen if the directory has 'List folder contents' permission set to 'Deny'2730 // This can happen if the directory has 'List folder contents' permission set to 'Deny'
2731 // and the directory is trying to be opened for iteration.2731 // and the directory is trying to be opened for iteration.
2732 .ACCESS_DENIED => return syscall.fail(error.AccessDenied),2732 .ACCESS_DENIED => return syscall.fail(error.AccessDenied),
2733 .DISK_FULL => return syscall.fail(error.NoSpaceLeft),
2733 .INVALID_PARAMETER => |s| return syscall.ntstatusBug(s),2734 .INVALID_PARAMETER => |s| return syscall.ntstatusBug(s),
2734 else => |s| return syscall.unexpectedNtstatus(s),2735 else => |s| return syscall.unexpectedNtstatus(s),
2735 };2736 };
...@@ -3670,6 +3671,7 @@ fn dirCreateFileWindows(...@@ -3670,6 +3671,7 @@ fn dirCreateFileWindows(
3670 .NOT_A_DIRECTORY => return syscall.fail(error.NotDir),3671 .NOT_A_DIRECTORY => return syscall.fail(error.NotDir),
3671 .USER_MAPPED_FILE => return syscall.fail(error.AccessDenied),3672 .USER_MAPPED_FILE => return syscall.fail(error.AccessDenied),
3672 .VIRUS_INFECTED, .VIRUS_DELETED => return syscall.fail(error.AntivirusInterference),3673 .VIRUS_INFECTED, .VIRUS_DELETED => return syscall.fail(error.AntivirusInterference),
3674 .DISK_FULL => return syscall.fail(error.NoSpaceLeft),
3673 .INVALID_PARAMETER => |status| return syscall.ntstatusBug(status),3675 .INVALID_PARAMETER => |status| return syscall.ntstatusBug(status),
3674 .OBJECT_PATH_SYNTAX_BAD => |status| return syscall.ntstatusBug(status),3676 .OBJECT_PATH_SYNTAX_BAD => |status| return syscall.ntstatusBug(status),
3675 .INVALID_HANDLE => |status| return syscall.ntstatusBug(status),3677 .INVALID_HANDLE => |status| return syscall.ntstatusBug(status),
...@@ -9215,6 +9217,7 @@ fn writeFilePositionalWindows(...@@ -9215,6 +9217,7 @@ fn writeFilePositionalWindows(
9215 .LOCK_VIOLATION => return syscall.fail(error.LockViolation),9217 .LOCK_VIOLATION => return syscall.fail(error.LockViolation),
9216 .ACCESS_DENIED => return syscall.fail(error.AccessDenied),9218 .ACCESS_DENIED => return syscall.fail(error.AccessDenied),
9217 .WORKING_SET_QUOTA => return syscall.fail(error.SystemResources),9219 .WORKING_SET_QUOTA => return syscall.fail(error.SystemResources),
9220 .DISK_FULL => return syscall.fail(error.NoSpaceLeft),
9218 else => |err| {9221 else => |err| {
9219 syscall.finish();9222 syscall.finish();
9220 return windows.unexpectedError(err);9223 return windows.unexpectedError(err);
...@@ -9375,6 +9378,7 @@ fn writeFileStreamingWindows(...@@ -9375,6 +9378,7 @@ fn writeFileStreamingWindows(
9375 .LOCK_VIOLATION => return syscall.fail(error.LockViolation),9378 .LOCK_VIOLATION => return syscall.fail(error.LockViolation),
9376 .ACCESS_DENIED => return syscall.fail(error.AccessDenied),9379 .ACCESS_DENIED => return syscall.fail(error.AccessDenied),
9377 .WORKING_SET_QUOTA => return syscall.fail(error.SystemResources),9380 .WORKING_SET_QUOTA => return syscall.fail(error.SystemResources),
9381 .DISK_FULL => return syscall.fail(error.NoSpaceLeft),
9378 else => |err| {9382 else => |err| {
9379 syscall.finish();9383 syscall.finish();
9380 return windows.unexpectedError(err);9384 return windows.unexpectedError(err);