diff options
| author | Andrew Kelley <andrew@ziglang.org> | 2019-04-02 15:21:08 -0400 |
|---|---|---|
| committer | Andrew Kelley <andrew@ziglang.org> | 2019-04-02 15:21:08 -0400 |
| commit | 0cccba71d41afee519d0000eb719f8c95f288166 (patch) | |
| tree | 430cf30a31f5b72fd7ca08c7075646599c1643e9 /src/os.cpp | |
| parent | 27e31f04758d95cb7cf51a74e2a3903553ce3bc5 (diff) | |
| download | zig-0cccba71d41afee519d0000eb719f8c95f288166.tar.gz zig-0cccba71d41afee519d0000eb719f8c95f288166.zip | |
better error message when os_file_overwrite fails
Diffstat (limited to 'src/os.cpp')
| -rw-r--r-- | src/os.cpp | 18 |
1 files changed, 15 insertions, 3 deletions
diff --git a/src/os.cpp b/src/os.cpp index 1dd22b7183..470d222307 100644 --- a/src/os.cpp +++ b/src/os.cpp @@ -2048,9 +2048,9 @@ Error os_file_overwrite(OsFile file, Buf *contents) { return ErrorNone; #else if (lseek(file, 0, SEEK_SET) == -1) - return ErrorFileSystem; + return ErrorUnexpectedSeekFailure; if (ftruncate(file, 0) == -1) - return ErrorFileSystem; + return ErrorUnexpectedFileTruncationFailure; for (;;) { if (write(file, buf_ptr(contents), buf_len(contents)) == -1) { switch (errno) { @@ -2060,8 +2060,20 @@ Error os_file_overwrite(OsFile file, Buf *contents) { zig_unreachable(); case EBADF: zig_unreachable(); - default: + case EFAULT: + zig_unreachable(); + case EDQUOT: + return ErrorDiskQuota; + case ENOSPC: + return ErrorDiskSpace; + case EFBIG: + return ErrorFileTooBig; + case EIO: return ErrorFileSystem; + case EPERM: + return ErrorAccess; + default: + return ErrorUnexpectedWriteFailure; } } return ErrorNone; |
