Report Invalid_Whence in os2 POSIX seek
This commit is contained in:
1 parent
ef2cd9d97f
commit
7683c1f4bb
1 file changed
+13
@@ -419,10 +419,23 @@ _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.CUR) == int(io.Seek_From.Current))
|
||||||
#assert(int(posix.Whence.END) == int(io.Seek_From.End))
|
#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)))
|
n = i64(posix.lseek(fd, posix.off_t(offset), posix.Whence(whence)))
|
||||||
if n < 0 {
|
if n < 0 {
|
||||||
|
#partial switch posix.get_errno() {
|
||||||
|
case .EINVAL:
|
||||||
|
err = .Invalid_Offset
|
||||||
|
case:
|
||||||
err = .Unknown
|
err = .Unknown
|
||||||
}
|
}
|
||||||
|
}
|
||||||
return
|
return
|
||||||
|
|
||||||
case .Size:
|
case .Size:
|
||||||
|
|||||||
Reference in new issue
Block a user