From 56f232e5fc76801d6d6872a1bbc4f67ba93c8095 Mon Sep 17 00:00:00 2001 From: Feoramund <161657516+Feoramund@users.noreply.github.com> Date: Sun, 25 Aug 2024 23:52:33 -0400 Subject: [PATCH] Report invalid whence & offset on `os2` Windows --- core/os/os2/errors_windows.odin | 3 +++ core/os/os2/file_windows.odin | 2 ++ 2 files changed, 5 insertions(+) diff --git a/core/os/os2/errors_windows.odin b/core/os/os2/errors_windows.odin index 6748c1167..8a9a47ca6 100644 --- a/core/os/os2/errors_windows.odin +++ b/core/os/os2/errors_windows.odin @@ -52,6 +52,9 @@ _get_platform_error :: proc() -> Error { case win32.ERROR_INVALID_HANDLE: return .Invalid_File + case win32.ERROR_NEGATIVE_SEEK: + return .Invalid_Offset + case win32.ERROR_BAD_ARGUMENTS, win32.ERROR_INVALID_PARAMETER, diff --git a/core/os/os2/file_windows.odin b/core/os/os2/file_windows.odin index dd22ce29f..2f551c49a 100644 --- a/core/os/os2/file_windows.odin +++ b/core/os/os2/file_windows.odin @@ -248,6 +248,8 @@ _seek :: proc(f: ^File_Impl, offset: i64, whence: io.Seek_From) -> (ret: i64, er case .Start: w = win32.FILE_BEGIN case .Current: w = win32.FILE_CURRENT case .End: w = win32.FILE_END + case: + return 0, .Invalid_Whence } hi := i32(offset>>32) lo := i32(offset)