|
@@ -215,7 +215,7 @@ _seek :: proc(f: ^File, offset: i64, whence: io.Seek_From) -> (ret: i64, err: Er
|
|
return i64(hi)<<32 + i64(dw_ptr), nil
|
|
return i64(hi)<<32 + i64(dw_ptr), nil
|
|
}
|
|
}
|
|
|
|
|
|
-_read :: proc(f: ^File, p: []byte) -> (n: int, err: Error) {
|
|
|
|
|
|
+_read :: proc(f: ^File, p: []byte) -> (n: i64, err: Error) {
|
|
read_console :: proc(handle: win32.HANDLE, b: []byte) -> (n: int, err: Error) {
|
|
read_console :: proc(handle: win32.HANDLE, b: []byte) -> (n: int, err: Error) {
|
|
if len(b) == 0 {
|
|
if len(b) == 0 {
|
|
return 0, nil
|
|
return 0, nil
|
|
@@ -281,7 +281,7 @@ _read :: proc(f: ^File, p: []byte) -> (n: int, err: Error) {
|
|
n, err := read_console(handle, p[total_read:][:to_read])
|
|
n, err := read_console(handle, p[total_read:][:to_read])
|
|
total_read += n
|
|
total_read += n
|
|
if err != nil {
|
|
if err != nil {
|
|
- return int(total_read), err
|
|
|
|
|
|
+ return i64(total_read), err
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
ok = win32.ReadFile(handle, &p[total_read], to_read, &single_read_length, nil)
|
|
ok = win32.ReadFile(handle, &p[total_read], to_read, &single_read_length, nil)
|
|
@@ -294,11 +294,11 @@ _read :: proc(f: ^File, p: []byte) -> (n: int, err: Error) {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
- return int(total_read), err
|
|
|
|
|
|
+ return i64(total_read), err
|
|
}
|
|
}
|
|
|
|
|
|
-_read_at :: proc(f: ^File, p: []byte, offset: i64) -> (n: int, err: Error) {
|
|
|
|
- pread :: proc(f: ^File, data: []byte, offset: i64) -> (n: int, err: Error) {
|
|
|
|
|
|
+_read_at :: proc(f: ^File, p: []byte, offset: i64) -> (n: i64, err: Error) {
|
|
|
|
+ pread :: proc(f: ^File, data: []byte, offset: i64) -> (n: i64, err: Error) {
|
|
buf := data
|
|
buf := data
|
|
if len(buf) > MAX_RW {
|
|
if len(buf) > MAX_RW {
|
|
buf = buf[:MAX_RW]
|
|
buf = buf[:MAX_RW]
|
|
@@ -320,7 +320,7 @@ _read_at :: proc(f: ^File, p: []byte, offset: i64) -> (n: int, err: Error) {
|
|
err = _get_platform_error()
|
|
err = _get_platform_error()
|
|
done = 0
|
|
done = 0
|
|
}
|
|
}
|
|
- n = int(done)
|
|
|
|
|
|
+ n = i64(done)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
@@ -336,7 +336,7 @@ _read_at :: proc(f: ^File, p: []byte, offset: i64) -> (n: int, err: Error) {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
-_write :: proc(f: ^File, p: []byte) -> (n: int, err: Error) {
|
|
|
|
|
|
+_write :: proc(f: ^File, p: []byte) -> (n: i64, err: Error) {
|
|
if len(p) == 0 {
|
|
if len(p) == 0 {
|
|
return
|
|
return
|
|
}
|
|
}
|
|
@@ -354,17 +354,17 @@ _write :: proc(f: ^File, p: []byte) -> (n: int, err: Error) {
|
|
|
|
|
|
e := win32.WriteFile(handle, &p[total_write], to_write, &single_write_length, nil)
|
|
e := win32.WriteFile(handle, &p[total_write], to_write, &single_write_length, nil)
|
|
if single_write_length <= 0 || !e {
|
|
if single_write_length <= 0 || !e {
|
|
- n = int(total_write)
|
|
|
|
|
|
+ n = i64(total_write)
|
|
err = _get_platform_error()
|
|
err = _get_platform_error()
|
|
return
|
|
return
|
|
}
|
|
}
|
|
total_write += i64(single_write_length)
|
|
total_write += i64(single_write_length)
|
|
}
|
|
}
|
|
- return int(total_write), nil
|
|
|
|
|
|
+ return i64(total_write), nil
|
|
}
|
|
}
|
|
|
|
|
|
-_write_at :: proc(f: ^File, p: []byte, offset: i64) -> (n: int, err: Error) {
|
|
|
|
- pwrite :: proc(f: ^File, data: []byte, offset: i64) -> (n: int, err: Error) {
|
|
|
|
|
|
+_write_at :: proc(f: ^File, p: []byte, offset: i64) -> (n: i64, err: Error) {
|
|
|
|
+ pwrite :: proc(f: ^File, data: []byte, offset: i64) -> (n: i64, err: Error) {
|
|
buf := data
|
|
buf := data
|
|
if len(buf) > MAX_RW {
|
|
if len(buf) > MAX_RW {
|
|
buf = buf[:MAX_RW]
|
|
buf = buf[:MAX_RW]
|
|
@@ -384,7 +384,7 @@ _write_at :: proc(f: ^File, p: []byte, offset: i64) -> (n: int, err: Error) {
|
|
err = _get_platform_error()
|
|
err = _get_platform_error()
|
|
done = 0
|
|
done = 0
|
|
}
|
|
}
|
|
- n = int(done)
|
|
|
|
|
|
+ n = i64(done)
|
|
return
|
|
return
|
|
}
|
|
}
|
|
|
|
|
|
@@ -733,23 +733,19 @@ _file_stream_proc :: proc(stream_data: rawptr, mode: io.Stream_Mode, p: []byte,
|
|
i: int
|
|
i: int
|
|
switch mode {
|
|
switch mode {
|
|
case .Read:
|
|
case .Read:
|
|
- i, ferr = _read(f, p)
|
|
|
|
- n = i64(i)
|
|
|
|
|
|
+ n, ferr = _read(f, p)
|
|
err = error_to_io_error(ferr)
|
|
err = error_to_io_error(ferr)
|
|
return
|
|
return
|
|
case .Read_At:
|
|
case .Read_At:
|
|
- i, ferr = _read_at(f, p, offset)
|
|
|
|
- n = i64(i)
|
|
|
|
|
|
+ n, ferr = _read_at(f, p, offset)
|
|
err = error_to_io_error(ferr)
|
|
err = error_to_io_error(ferr)
|
|
return
|
|
return
|
|
case .Write:
|
|
case .Write:
|
|
- i, ferr = _write(f, p)
|
|
|
|
- n = i64(i)
|
|
|
|
|
|
+ n, ferr = _write(f, p)
|
|
err = error_to_io_error(ferr)
|
|
err = error_to_io_error(ferr)
|
|
return
|
|
return
|
|
case .Write_At:
|
|
case .Write_At:
|
|
- i, ferr = _write_at(f, p, offset)
|
|
|
|
- n = i64(i)
|
|
|
|
|
|
+ n, ferr = _write_at(f, p, offset)
|
|
err = error_to_io_error(ferr)
|
|
err = error_to_io_error(ferr)
|
|
return
|
|
return
|
|
case .Seek:
|
|
case .Seek:
|