aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFeoramund <161657516+Feoramund@users.noreply.github.com>2024-08-25 23:52:33 -0400
committerLaytan <laytanlaats@hotmail.com>2024-08-28 19:53:20 +0200
commit56f232e5fc76801d6d6872a1bbc4f67ba93c8095 (patch)
tree1a8c3295dd83c0f39d03a4502a4eb6aa92602ff1
parentde1432b31569456d59f3749d9e99132776f377dc (diff)
Report invalid whence & offset on `os2` Windows
-rw-r--r--core/os/os2/errors_windows.odin3
-rw-r--r--core/os/os2/file_windows.odin2
2 files changed, 5 insertions, 0 deletions
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)