From 1e9f1055754a225a2a62a0b106b513ed3f3107be Mon Sep 17 00:00:00 2001 From: Chris Sutcliffe Date: Mon, 23 May 2011 02:54:21 +0000 Subject: [PATCH] 2011-05-22 Antoine LECA * 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. --- winsup/mingw/ChangeLog | 12 +++++++++--- winsup/mingw/mingwex/mingw-fseek.c | 16 ++++++++-------- 2 files changed, 17 insertions(+), 11 deletions(-) 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); }