Commit 72017cc9 authored by Peter Beutner's avatar Peter Beutner Committed by Alexandre Julliard

msvcrt: Correctly set EOF flag in fread().

Setting the EOF flag only if _read() returns zero is not enough as we could also read something AND hit the end of file. _read() already sets another internal EOF flag, so just use this too. Removing todo_wine from the test case.
parent b786ea58
...@@ -2503,7 +2503,7 @@ MSVCRT_size_t MSVCRT_fread(void *ptr, MSVCRT_size_t size, MSVCRT_size_t nmemb, M ...@@ -2503,7 +2503,7 @@ MSVCRT_size_t MSVCRT_fread(void *ptr, MSVCRT_size_t size, MSVCRT_size_t nmemb, M
/* expose feof condition in the flags /* expose feof condition in the flags
* MFC tests file->_flag for feof, and doesn't not call feof()) * MFC tests file->_flag for feof, and doesn't not call feof())
*/ */
if (pread == 0) if ( MSVCRT_fdesc[file->_file].wxflag & WX_ATEOF)
file->_flag |= MSVCRT__IOEOF; file->_flag |= MSVCRT__IOEOF;
else if (pread == -1) else if (pread == -1)
{ {
......
...@@ -125,7 +125,7 @@ static void test_fileops( void ) ...@@ -125,7 +125,7 @@ static void test_fileops( void )
/* sizeof(buffer) > content of file */ /* sizeof(buffer) > content of file */
ok(fread(buffer, sizeof(buffer), 1, file) == 0, "fread test failed\n"); ok(fread(buffer, sizeof(buffer), 1, file) == 0, "fread test failed\n");
/* feof should be set now */ /* feof should be set now */
todo_wine ok(feof(file), "feof after fread failed\n"); ok(feof(file), "feof after fread failed\n");
fclose (file); fclose (file);
unlink ("fdopen.tst"); unlink ("fdopen.tst");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment