| 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,6 +45,11 @@ const char *err_str(Error err) { |
| 45 | case ErrorUnknownOperatingSystem: return "unrecognized operating system"; | 45 | case ErrorUnknownOperatingSystem: return "unrecognized operating system"; |
| 46 | case ErrorUnknownABI: return "unrecognized C ABI"; | 46 | case ErrorUnknownABI: return "unrecognized C ABI"; |
| 47 | case ErrorInvalidFilename: return "invalid filename"; | 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 | return "(invalid error)"; | 54 | return "(invalid error)"; |
| 50 | } | 55 | } |
src/error.hpp+5| ... | @@ -47,6 +47,11 @@ enum Error { | ... | @@ -47,6 +47,11 @@ enum Error { |
| 47 | ErrorUnknownOperatingSystem, | 47 | ErrorUnknownOperatingSystem, |
| 48 | ErrorUnknownABI, | 48 | ErrorUnknownABI, |
| 49 | ErrorInvalidFilename, | 49 | ErrorInvalidFilename, |
| 50 | ErrorDiskQuota, | ||
| 51 | ErrorDiskSpace, | ||
| 52 | ErrorUnexpectedWriteFailure, | ||
| 53 | ErrorUnexpectedSeekFailure, | ||
| 54 | ErrorUnexpectedFileTruncationFailure, | ||
| 50 | }; | 55 | }; |
| 51 | 56 | ||
| 52 | const char *err_str(Error err); | 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,9 +2048,9 @@ Error os_file_overwrite(OsFile file, Buf *contents) { |
| 2048 | return ErrorNone; | 2048 | return ErrorNone; |
| 2049 | #else | 2049 | #else |
| 2050 | if (lseek(file, 0, SEEK_SET) == -1) | 2050 | if (lseek(file, 0, SEEK_SET) == -1) |
| 2051 | return ErrorFileSystem; | 2051 | return ErrorUnexpectedSeekFailure; |
| 2052 | if (ftruncate(file, 0) == -1) | 2052 | if (ftruncate(file, 0) == -1) |
| 2053 | return ErrorFileSystem; | 2053 | return ErrorUnexpectedFileTruncationFailure; |
| 2054 | for (;;) { | 2054 | for (;;) { |
| 2055 | if (write(file, buf_ptr(contents), buf_len(contents)) == -1) { | 2055 | if (write(file, buf_ptr(contents), buf_len(contents)) == -1) { |
| 2056 | switch (errno) { | 2056 | switch (errno) { |
| ... | @@ -2060,8 +2060,20 @@ Error os_file_overwrite(OsFile file, Buf *contents) { | ... | @@ -2060,8 +2060,20 @@ Error os_file_overwrite(OsFile file, Buf *contents) { |
| 2060 | zig_unreachable(); | 2060 | zig_unreachable(); |
| 2061 | case EBADF: | 2061 | case EBADF: |
| 2062 | zig_unreachable(); | 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 | return ErrorFileSystem; | 2072 | return ErrorFileSystem; |
| 2073 | case EPERM: | ||
| 2074 | return ErrorAccess; | ||
| 2075 | default: | ||
| 2076 | return ErrorUnexpectedWriteFailure; | ||
| 2065 | } | 2077 | } |
| 2066 | } | 2078 | } |
| 2067 | return ErrorNone; | 2079 | return ErrorNone; |