Browse code

file: write: return error if fflush failed

Sigrid Solveig Haflínudóttir authored on 07/11/2021 19:20:32
Showing 1 changed files
... ...
@@ -109,17 +109,17 @@ file_read(void *dest, Uint16 len)
109 109
 Uint16
110 110
 file_write(void *src, Uint16 len, Uint8 flags)
111 111
 {
112
+	Uint16 ret = 0;
112 113
 	if(state != FILE_WRITE) {
113 114
 		reset();
114 115
 		if((f = fopen(current_filename, (flags & 0x01) ? "ab" : "wb")) != NULL)
115 116
 			state = FILE_WRITE;
116 117
 	}
117 118
 	if(state == FILE_WRITE) {
118
-		Uint16 ret = fwrite(src, 1, len, f);
119
-		fflush(f);
120
-		return ret;
119
+		if((ret = fwrite(src, 1, len, f)) > 0 && fflush(f) != 0)
120
+			ret = 0;
121 121
 	}
122
-	return 0;
122
+	return ret;
123 123
 }
124 124
 
125 125
 Uint16