[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