| author | |
| committer | |
| log | 0cccba71d41afee519d0000eb719f8c95f288166 |
| tree | 430cf30a31f5b72fd7ca08c7075646599c1643e9 |
| parent | 27e31f04758d95cb7cf51a74e2a3903553ce3bc5 |
| signature |
3 files changed, 25 insertions(+), 3 deletions(-)
src/error.cpp+5| ... | ... | @@ -45,6 +45,11 @@ const char *err_str(Error err) { |
| 45 | 45 | case ErrorUnknownOperatingSystem: return "unrecognized operating system"; |
| 46 | 46 | case ErrorUnknownABI: return "unrecognized C ABI"; |
| 47 | 47 | case ErrorInvalidFilename: return "invalid filename"; |
| 48 | case ErrorDiskQuota: return "disk space quota exceeded"; | |
| 49 | case ErrorDiskSpace: return "out of disk space"; | |
| 50 | case ErrorUnexpectedWriteFailure: return "unexpected write failure"; | |
| 51 | case ErrorUnexpectedSeekFailure: return "unexpected seek failure"; | |
| 52 | case ErrorUnexpectedFileTruncationFailure: return "unexpected file truncation failure"; | |
| 48 | 53 | } |
| 49 | 54 | return "(invalid error)"; |
| 50 | 55 | } |
src/error.hpp+5| ... | ... | @@ -47,6 +47,11 @@ enum Error { |
| 47 | 47 | ErrorUnknownOperatingSystem, |
| 48 | 48 | ErrorUnknownABI, |
| 49 | 49 | ErrorInvalidFilename, |
| 50 | ErrorDiskQuota, | |
| 51 | ErrorDiskSpace, | |
| 52 | ErrorUnexpectedWriteFailure, | |
| 53 | ErrorUnexpectedSeekFailure, | |
| 54 | ErrorUnexpectedFileTruncationFailure, | |
| 50 | 55 | }; |
| 51 | 56 | |
| 52 | 57 | const char *err_str(Error err); |
src/os.cpp+15-3| ... | ... | @@ -2048,9 +2048,9 @@ Error os_file_overwrite(OsFile file, Buf *contents) { |
| 2048 | 2048 | return ErrorNone; |
| 2049 | 2049 | #else |
| 2050 | 2050 | if (lseek(file, 0, SEEK_SET) == -1) |
| 2051 | return ErrorFileSystem; | |
| 2051 | return ErrorUnexpectedSeekFailure; | |
| 2052 | 2052 | if (ftruncate(file, 0) == -1) |
| 2053 | return ErrorFileSystem; | |
| 2053 | return ErrorUnexpectedFileTruncationFailure; | |
| 2054 | 2054 | for (;;) { |
| 2055 | 2055 | if (write(file, buf_ptr(contents), buf_len(contents)) == -1) { |
| 2056 | 2056 | switch (errno) { |
| ... | ... | @@ -2060,8 +2060,20 @@ Error os_file_overwrite(OsFile file, Buf *contents) { |
| 2060 | 2060 | zig_unreachable(); |
| 2061 | 2061 | case EBADF: |
| 2062 | 2062 | zig_unreachable(); |
| 2063 | default: | |
| 2063 | case EFAULT: | |
| 2064 | zig_unreachable(); | |
| 2065 | case EDQUOT: | |
| 2066 | return ErrorDiskQuota; | |
| 2067 | case ENOSPC: | |
| 2068 | return ErrorDiskSpace; | |
| 2069 | case EFBIG: | |
| 2070 | return ErrorFileTooBig; | |
| 2071 | case EIO: | |
| 2064 | 2072 | return ErrorFileSystem; |
| 2073 | case EPERM: | |
| 2074 | return ErrorAccess; | |
| 2075 | default: | |
| 2076 | return ErrorUnexpectedWriteFailure; | |
| 2065 | 2077 | } |
| 2066 | 2078 | } |
| 2067 | 2079 | return ErrorNone; |