From 0a37ad2ec4daa04a845142508e0dd1326db7ee2d Mon Sep 17 00:00:00 2001 From: Andrew Kelley Date: Thu, 29 Jan 2026 01:13:32 -0800 Subject: [PATCH] std.Io.File: handle DISK_FULL on windows --- lib/std/Io/Threaded.zig | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/lib/std/Io/Threaded.zig b/lib/std/Io/Threaded.zig index 1a15bae33b89b60895f5130bae24cd61b9da4e4c..1a01795213ad9aafa46e8492cfdd13cb4a7c677a 100644 --- a/lib/std/Io/Threaded.zig +++ b/lib/std/Io/Threaded.zig @@ -2730,6 +2730,7 @@ fn dirCreateDirPathOpenWindows( // This can happen if the directory has 'List folder contents' permission set to 'Deny' // and the directory is trying to be opened for iteration. .ACCESS_DENIED => return syscall.fail(error.AccessDenied), + .DISK_FULL => return syscall.fail(error.NoSpaceLeft), .INVALID_PARAMETER => |s| return syscall.ntstatusBug(s), else => |s| return syscall.unexpectedNtstatus(s), }; @@ -3670,6 +3671,7 @@ fn dirCreateFileWindows( .NOT_A_DIRECTORY => return syscall.fail(error.NotDir), .USER_MAPPED_FILE => return syscall.fail(error.AccessDenied), .VIRUS_INFECTED, .VIRUS_DELETED => return syscall.fail(error.AntivirusInterference), + .DISK_FULL => return syscall.fail(error.NoSpaceLeft), .INVALID_PARAMETER => |status| return syscall.ntstatusBug(status), .OBJECT_PATH_SYNTAX_BAD => |status| return syscall.ntstatusBug(status), .INVALID_HANDLE => |status| return syscall.ntstatusBug(status), @@ -9215,6 +9217,7 @@ fn writeFilePositionalWindows( .LOCK_VIOLATION => return syscall.fail(error.LockViolation), .ACCESS_DENIED => return syscall.fail(error.AccessDenied), .WORKING_SET_QUOTA => return syscall.fail(error.SystemResources), + .DISK_FULL => return syscall.fail(error.NoSpaceLeft), else => |err| { syscall.finish(); return windows.unexpectedError(err); @@ -9375,6 +9378,7 @@ fn writeFileStreamingWindows( .LOCK_VIOLATION => return syscall.fail(error.LockViolation), .ACCESS_DENIED => return syscall.fail(error.AccessDenied), .WORKING_SET_QUOTA => return syscall.fail(error.SystemResources), + .DISK_FULL => return syscall.fail(error.NoSpaceLeft), else => |err| { syscall.finish(); return windows.unexpectedError(err); -- 2.54.0