msvcrt: Fix fread eof handling.

This commit is contained in:
Markus Amsler 2006-10-13 00:03:56 +02:00 committed by Alexandre Julliard
parent fdd61a7a35
commit 9ae995f674
2 changed files with 2 additions and 1 deletions

View File

@ -2538,6 +2538,7 @@ MSVCRT_size_t CDECL MSVCRT_fread(void *ptr, MSVCRT_size_t size, MSVCRT_size_t nm
/* If the buffer fill reaches eof but fread wouldn't, clear eof. */ /* If the buffer fill reaches eof but fread wouldn't, clear eof. */
if (i > 0 && i < file->_cnt) { if (i > 0 && i < file->_cnt) {
MSVCRT_fdesc[file->_file].wxflag &= ~WX_ATEOF; MSVCRT_fdesc[file->_file].wxflag &= ~WX_ATEOF;
file->_flag &= ~MSVCRT__IOEOF;
} }
if (i > 0) { if (i > 0) {
memcpy(ptr, file->_ptr, i); memcpy(ptr, file->_ptr, i);

View File

@ -228,7 +228,7 @@ static void test_readmode( BOOL ascii_mode )
ok(fseek(file,-3,SEEK_CUR)==0,"seek failure in %s\n", IOMODE); ok(fseek(file,-3,SEEK_CUR)==0,"seek failure in %s\n", IOMODE);
todo_wine ok(feof(file)==0,"feof failure in %s\n", IOMODE); todo_wine ok(feof(file)==0,"feof failure in %s\n", IOMODE);
ok(fread(buffer,2,1,file)==1,"fread failed in %s\n", IOMODE); ok(fread(buffer,2,1,file)==1,"fread failed in %s\n", IOMODE);
todo_wine ok(feof(file)==0,"feof failure in %s\n", IOMODE); ok(feof(file)==0,"feof failure in %s\n", IOMODE);
ok(fread(buffer,2,1,file)==0,"fread failure in %s\n",IOMODE); ok(fread(buffer,2,1,file)==0,"fread failure in %s\n",IOMODE);
ok(feof(file)!=0,"feof failure in %s\n", IOMODE); ok(feof(file)!=0,"feof failure in %s\n", IOMODE);