From 7683c1f4bb284e54d668b7a63a7204c7df30d5d6 Mon Sep 17 00:00:00 2001 From: Feoramund <161657516+Feoramund@users.noreply.github.com> Date: Thu, 22 Aug 2024 17:32:30 -0400 Subject: [PATCH] Report `Invalid_Whence` in `os2` POSIX seek --- core/os/os2/file_posix.odin | 15 ++++++++++++++- 1 file changed, 14 insertions(+), 1 deletion(-) diff --git a/core/os/os2/file_posix.odin b/core/os/os2/file_posix.odin index 26bcb111c..dae85d224 100644 --- a/core/os/os2/file_posix.odin +++ b/core/os/os2/file_posix.odin @@ -419,9 +419,22 @@ _file_stream_proc :: proc(stream_data: rawptr, mode: io.Stream_Mode, p: []byte, #assert(int(posix.Whence.CUR) == int(io.Seek_From.Current)) #assert(int(posix.Whence.END) == int(io.Seek_From.End)) + switch whence { + case .Start, .Current, .End: + break + case: + err = .Invalid_Whence + return + } + n = i64(posix.lseek(fd, posix.off_t(offset), posix.Whence(whence))) if n < 0 { - err = .Unknown + #partial switch posix.get_errno() { + case .EINVAL: + err = .Invalid_Offset + case: + err = .Unknown + } } return