Skip to content

Commit

Permalink
std: refactor posixOpen to be friendlier to error return traces
Browse files Browse the repository at this point in the history
  • Loading branch information
andrewrk committed Feb 11, 2018
1 parent 46aa416 commit e743b30
Showing 1 changed file with 17 additions and 17 deletions.
34 changes: 17 additions & 17 deletions std/os/index.zig
Expand Up @@ -285,27 +285,27 @@ pub fn posixOpenC(file_path: &const u8, flags: u32, perm: usize) !i32 {
const result = posix.open(file_path, flags, perm);
const err = posix.getErrno(result);
if (err > 0) {
return switch (err) {
switch (err) {
posix.EINTR => continue,

posix.EFAULT => unreachable,
posix.EINVAL => unreachable,
posix.EACCES => PosixOpenError.AccessDenied,
posix.EFBIG, posix.EOVERFLOW => PosixOpenError.FileTooBig,
posix.EISDIR => PosixOpenError.IsDir,
posix.ELOOP => PosixOpenError.SymLinkLoop,
posix.EMFILE => PosixOpenError.ProcessFdQuotaExceeded,
posix.ENAMETOOLONG => PosixOpenError.NameTooLong,
posix.ENFILE => PosixOpenError.SystemFdQuotaExceeded,
posix.ENODEV => PosixOpenError.NoDevice,
posix.ENOENT => PosixOpenError.PathNotFound,
posix.ENOMEM => PosixOpenError.SystemResources,
posix.ENOSPC => PosixOpenError.NoSpaceLeft,
posix.ENOTDIR => PosixOpenError.NotDir,
posix.EPERM => PosixOpenError.AccessDenied,
posix.EEXIST => PosixOpenError.PathAlreadyExists,
else => unexpectedErrorPosix(err),
};
posix.EACCES => return PosixOpenError.AccessDenied,
posix.EFBIG, posix.EOVERFLOW => return PosixOpenError.FileTooBig,
posix.EISDIR => return PosixOpenError.IsDir,
posix.ELOOP => return PosixOpenError.SymLinkLoop,
posix.EMFILE => return PosixOpenError.ProcessFdQuotaExceeded,
posix.ENAMETOOLONG => return PosixOpenError.NameTooLong,
posix.ENFILE => return PosixOpenError.SystemFdQuotaExceeded,
posix.ENODEV => return PosixOpenError.NoDevice,
posix.ENOENT => return PosixOpenError.PathNotFound,
posix.ENOMEM => return PosixOpenError.SystemResources,
posix.ENOSPC => return PosixOpenError.NoSpaceLeft,
posix.ENOTDIR => return PosixOpenError.NotDir,
posix.EPERM => return PosixOpenError.AccessDenied,
posix.EEXIST => return PosixOpenError.PathAlreadyExists,
else => return unexpectedErrorPosix(err),
}
}
return i32(result);
}
Expand Down

0 comments on commit e743b30

Please sign in to comment.