diff --git a/winsup/mingw/ChangeLog b/winsup/mingw/ChangeLog index 4c5de35c8..047d07c80 100644 --- a/winsup/mingw/ChangeLog +++ b/winsup/mingw/ChangeLog @@ -1,11 +1,17 @@ 2011-05-22 Antoine LECA - * mingwex/isblank.c: Fix typo in declaration. + * mingwex/mingw-fseek.c: The anonymous union feature for LARGE_INTEGER is + not always available, go the long way and use the explicit named union + members, which are also declared in winnt.h. 2011-05-22 Antoine LECA - * include/_mingw.h: Define GCC system_header only if PCC is not defined. - * include/stdlib.h: Fix a long-standing typo which prevented correct use of + * mingwex/isblank.c: Fix typo in declaration. + +2011-05-22 Antoine LECA + + * include/_mingw.h: Define GCC system_header only if PCC is not defined. + * include/stdlib.h: Fix a long-standing typo which prevented correct use of the MB_CUR_MAX macro/variable when DECLSPEC is not supported and is included before . diff --git a/winsup/mingw/mingwex/mingw-fseek.c b/winsup/mingw/mingwex/mingw-fseek.c index b4f45cc7e..9a13957be 100644 --- a/winsup/mingw/mingwex/mingw-fseek.c +++ b/winsup/mingw/mingwex/mingw-fseek.c @@ -47,16 +47,16 @@ __mingw_fwrite (const void *buffer, size_t size, size_t count, FILE *fp) LARGE_INTEGER current_position = {{0LL}}; __mingw_fseek_called = 0; fflush (fp); - actual_length.LowPart = GetFileSize ((HANDLE) _get_osfhandle (fileno (fp)), - &actual_length.HighPart); - if (actual_length.LowPart == 0xFFFFFFFF + actual_length.u.LowPart = GetFileSize ((HANDLE) _get_osfhandle (fileno (fp)), + &actual_length.u.HighPart); + if (actual_length.u.LowPart == 0xFFFFFFFF && GetLastError() != NO_ERROR ) return -1; - current_position.LowPart = SetFilePointer ((HANDLE) _get_osfhandle (fileno (fp)), - current_position.LowPart, - ¤t_position.HighPart, + current_position.u.LowPart = SetFilePointer ((HANDLE) _get_osfhandle (fileno (fp)), + current_position.u.LowPart, + ¤t_position.u.HighPart, FILE_CURRENT); - if (current_position.LowPart == 0xFFFFFFFF + if (current_position.u.LowPart == 0xFFFFFFFF && GetLastError() != NO_ERROR ) return -1; @@ -102,5 +102,5 @@ __mingw_fwrite (const void *buffer, size_t size, size_t count, FILE *fp) FlushFileBuffers ((HANDLE) _get_osfhandle (fileno (fp))); } } - return fwrite (buffer, size, count, fp); + return (fwrite) (buffer, size, count, fp); }