Pārlūkot izejas kodu

Fix issue with os.write on *nix with writing nothing

gingerBill 5 gadi atpakaļ
vecāks
revīzija
902d313c6a
2 mainītis faili ar 4 papildinājumiem un 1 dzēšanām
  1. 1 1
      core/os/os_darwin.odin
  2. 3 0
      core/os/os_linux.odin

+ 1 - 1
core/os/os_darwin.odin

@@ -170,7 +170,7 @@ write :: proc(fd: Handle, data: []u8) -> (int, Errno) {
 	assert(fd != -1);
 
 	if len(data) == 0 {
-		return 0, 1;
+		return 0, 0;
 	}
 	bytes_written := _unix_write(fd, &data[0], len(data));
 	if(bytes_written == -1) {

+ 3 - 0
core/os/os_linux.odin

@@ -238,6 +238,9 @@ read :: proc(fd: Handle, data: []byte) -> (int, Errno) {
 }
 
 write :: proc(fd: Handle, data: []byte) -> (int, Errno) {
+	if len(data) == 0 {
+		return 0, ERROR_NONE;
+	}
 	bytes_written := _unix_write(fd, &data[0], len(data));
 	if bytes_written == -1 {
 		return -1, Errno(get_last_error());