[2/3] msvcrt: Clear _cnt on buffer flush.
Grazvydas Ignotas
notasas at gmail.com
Tue Jun 17 19:03:21 CDT 2014
---
dlls/msvcrt/file.c | 3 ++-
dlls/msvcrt/tests/file.c | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
diff --git a/dlls/msvcrt/file.c b/dlls/msvcrt/file.c
index c1d9d6e..c6d8d3e 100644
--- a/dlls/msvcrt/file.c
+++ b/dlls/msvcrt/file.c
@@ -595,7 +595,7 @@ static int msvcrt_flush_buffer(MSVCRT_FILE* file)
return MSVCRT_EOF;
}
file->_ptr=file->_base;
- file->_cnt=file->_bufsiz;
+ file->_cnt=0;
}
return 0;
}
@@ -3662,6 +3662,7 @@ int CDECL MSVCRT__flsbuf(int c, MSVCRT_FILE* file)
if(file->_cnt <= 0)
res = msvcrt_flush_buffer(file);
if(!res) {
+ file->_cnt=file->_bufsiz;
*file->_ptr++ = c;
file->_cnt--;
}
diff --git a/dlls/msvcrt/tests/file.c b/dlls/msvcrt/tests/file.c
index 9fc95b0..29f6ddb 100644
--- a/dlls/msvcrt/tests/file.c
+++ b/dlls/msvcrt/tests/file.c
@@ -2240,7 +2240,7 @@ static void test_write_flush_size(FILE *file, size_t bufsize)
*/
lseek(fd, 1, SEEK_SET);
fflush(file);
- todo_wine ok(file->_cnt == 0, "_cnt should be 0 after fflush, but is %d\n", file->_cnt);
+ ok(file->_cnt == 0, "_cnt should be 0 after fflush, but is %d\n", file->_cnt);
fseek(file, 0, SEEK_SET);
ok(fread(inbuffer, 1, bufsize, file) == bufsize, "read failed\n");
if (size == bufsize)
--
1.7.9.5
More information about the wine-patches
mailing list