Move errors to where appropriate

This commit is contained in:
gingerBill
2024-08-04 13:41:34 +01:00
parent 3d992e2704
commit e8d26c5797
5 changed files with 13 additions and 12 deletions

View File

@@ -58,7 +58,7 @@ read_dir :: proc(fd: Handle, n: int, allocator := context.allocator) -> (fi: []F
dir_fi, _ := file_info_from_get_file_information_by_handle("", h)
if !dir_fi.is_dir {
return nil, ERROR_FILE_IS_NOT_DIR
return nil, .Not_Dir
}
n := n

View File

@@ -32,6 +32,9 @@ General_Error :: enum u32 {
Pattern_Has_Separator,
Unsupported,
File_Is_Pipe,
Not_Dir,
}
@@ -77,6 +80,8 @@ error_string :: proc "contextless" (ferr: Error) -> string {
case .Invalid_Callback: return "invalid callback"
case .Unsupported: return "unsupported"
case .Pattern_Has_Separator: return "pattern has separator"
case .File_Is_Pipe: return "file is pipe"
case .Not_Dir: return "file is not directory"
}
case io.Error:
switch e {

View File

@@ -195,7 +195,7 @@ seek :: proc(fd: Handle, offset: i64, whence: int) -> (i64, Error) {
lo := i32(offset)
ft := win32.GetFileType(win32.HANDLE(fd))
if ft == win32.FILE_TYPE_PIPE {
return 0, ERROR_FILE_IS_PIPE
return 0, .File_Is_Pipe
}
dw_ptr := win32.SetFilePointer(win32.HANDLE(fd), lo, &hi, w)
@@ -278,7 +278,7 @@ will read from the location twice on *nix, and from two different locations on W
*/
read_at :: proc(fd: Handle, data: []byte, offset: i64) -> (n: int, err: Error) {
if offset < 0 {
return 0, ERROR_NEGATIVE_OFFSET
return 0, .Invalid_Offset
}
b, offset := data, offset
@@ -310,7 +310,7 @@ will write to the location twice on *nix, and to two different locations on Wind
*/
write_at :: proc(fd: Handle, data: []byte, offset: i64) -> (n: int, err: Error) {
if offset < 0 {
return 0, ERROR_NEGATIVE_OFFSET
return 0, .Invalid_Offset
}
b, offset := data, offset

View File

@@ -241,10 +241,8 @@ ERROR_PRIVILEGE_NOT_HELD :: Platform_Error.PRIVILEGE_NOT_HELD
WSAEACCES :: Platform_Error.WSAEACCES
WSAECONNRESET :: Platform_Error.WSAECONNRESET
// Windows reserves errors >= 1<<29 for application use
ERROR_FILE_IS_PIPE :: Platform_Error.FILE_IS_PIPE
ERROR_FILE_IS_NOT_DIR :: Platform_Error.FILE_IS_NOT_DIR
ERROR_NEGATIVE_OFFSET :: Platform_Error.NEGATIVE_OFFSET
ERROR_FILE_IS_PIPE :: General_Error.File_Is_Pipe
ERROR_FILE_IS_NOT_DIR :: General_Error.Not_Dir
// "Argv" arguments converted to Odin strings
args := _alloc_command_line_arguments()

View File

@@ -54,10 +54,8 @@ ERROR_PRIVILEGE_NOT_HELD :: _Platform_Error(1314)
WSAEACCES :: _Platform_Error(10013)
WSAECONNRESET :: _Platform_Error(10054)
// Windows reserves errors >= 1<<29 for application use
ERROR_FILE_IS_PIPE :: _Platform_Error(1<<29 + 0)
ERROR_FILE_IS_NOT_DIR :: _Platform_Error(1<<29 + 1)
ERROR_NEGATIVE_OFFSET :: _Platform_Error(1<<29 + 2)
ERROR_FILE_IS_PIPE :: General_Error.File_Is_Pipe
ERROR_FILE_IS_NOT_DIR :: General_Error.Not_Dir
// "Argv" arguments converted to Odin strings
args := _alloc_command_line_arguments()