mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-05 15:18:49 +00:00
Move errors to where appropriate
This commit is contained in:
@@ -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)
|
dir_fi, _ := file_info_from_get_file_information_by_handle("", h)
|
||||||
if !dir_fi.is_dir {
|
if !dir_fi.is_dir {
|
||||||
return nil, ERROR_FILE_IS_NOT_DIR
|
return nil, .Not_Dir
|
||||||
}
|
}
|
||||||
|
|
||||||
n := n
|
n := n
|
||||||
|
|||||||
@@ -32,6 +32,9 @@ General_Error :: enum u32 {
|
|||||||
Pattern_Has_Separator,
|
Pattern_Has_Separator,
|
||||||
|
|
||||||
Unsupported,
|
Unsupported,
|
||||||
|
|
||||||
|
File_Is_Pipe,
|
||||||
|
Not_Dir,
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -77,6 +80,8 @@ error_string :: proc "contextless" (ferr: Error) -> string {
|
|||||||
case .Invalid_Callback: return "invalid callback"
|
case .Invalid_Callback: return "invalid callback"
|
||||||
case .Unsupported: return "unsupported"
|
case .Unsupported: return "unsupported"
|
||||||
case .Pattern_Has_Separator: return "pattern has separator"
|
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:
|
case io.Error:
|
||||||
switch e {
|
switch e {
|
||||||
|
|||||||
@@ -195,7 +195,7 @@ seek :: proc(fd: Handle, offset: i64, whence: int) -> (i64, Error) {
|
|||||||
lo := i32(offset)
|
lo := i32(offset)
|
||||||
ft := win32.GetFileType(win32.HANDLE(fd))
|
ft := win32.GetFileType(win32.HANDLE(fd))
|
||||||
if ft == win32.FILE_TYPE_PIPE {
|
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)
|
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) {
|
read_at :: proc(fd: Handle, data: []byte, offset: i64) -> (n: int, err: Error) {
|
||||||
if offset < 0 {
|
if offset < 0 {
|
||||||
return 0, ERROR_NEGATIVE_OFFSET
|
return 0, .Invalid_Offset
|
||||||
}
|
}
|
||||||
|
|
||||||
b, offset := data, 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) {
|
write_at :: proc(fd: Handle, data: []byte, offset: i64) -> (n: int, err: Error) {
|
||||||
if offset < 0 {
|
if offset < 0 {
|
||||||
return 0, ERROR_NEGATIVE_OFFSET
|
return 0, .Invalid_Offset
|
||||||
}
|
}
|
||||||
|
|
||||||
b, offset := data, offset
|
b, offset := data, offset
|
||||||
|
|||||||
+2
-4
@@ -241,10 +241,8 @@ ERROR_PRIVILEGE_NOT_HELD :: Platform_Error.PRIVILEGE_NOT_HELD
|
|||||||
WSAEACCES :: Platform_Error.WSAEACCES
|
WSAEACCES :: Platform_Error.WSAEACCES
|
||||||
WSAECONNRESET :: Platform_Error.WSAECONNRESET
|
WSAECONNRESET :: Platform_Error.WSAECONNRESET
|
||||||
|
|
||||||
// Windows reserves errors >= 1<<29 for application use
|
ERROR_FILE_IS_PIPE :: General_Error.File_Is_Pipe
|
||||||
ERROR_FILE_IS_PIPE :: Platform_Error.FILE_IS_PIPE
|
ERROR_FILE_IS_NOT_DIR :: General_Error.Not_Dir
|
||||||
ERROR_FILE_IS_NOT_DIR :: Platform_Error.FILE_IS_NOT_DIR
|
|
||||||
ERROR_NEGATIVE_OFFSET :: Platform_Error.NEGATIVE_OFFSET
|
|
||||||
|
|
||||||
// "Argv" arguments converted to Odin strings
|
// "Argv" arguments converted to Odin strings
|
||||||
args := _alloc_command_line_arguments()
|
args := _alloc_command_line_arguments()
|
||||||
|
|||||||
@@ -54,10 +54,8 @@ ERROR_PRIVILEGE_NOT_HELD :: _Platform_Error(1314)
|
|||||||
WSAEACCES :: _Platform_Error(10013)
|
WSAEACCES :: _Platform_Error(10013)
|
||||||
WSAECONNRESET :: _Platform_Error(10054)
|
WSAECONNRESET :: _Platform_Error(10054)
|
||||||
|
|
||||||
// Windows reserves errors >= 1<<29 for application use
|
ERROR_FILE_IS_PIPE :: General_Error.File_Is_Pipe
|
||||||
ERROR_FILE_IS_PIPE :: _Platform_Error(1<<29 + 0)
|
ERROR_FILE_IS_NOT_DIR :: General_Error.Not_Dir
|
||||||
ERROR_FILE_IS_NOT_DIR :: _Platform_Error(1<<29 + 1)
|
|
||||||
ERROR_NEGATIVE_OFFSET :: _Platform_Error(1<<29 + 2)
|
|
||||||
|
|
||||||
// "Argv" arguments converted to Odin strings
|
// "Argv" arguments converted to Odin strings
|
||||||
args := _alloc_command_line_arguments()
|
args := _alloc_command_line_arguments()
|
||||||
|
|||||||
Reference in New Issue
Block a user