From e36a54403bcc091535e594c00a7f7610a7e0e118 Mon Sep 17 00:00:00 2001 From: Paul Tucker Date: Wed, 22 Mar 2000 00:57:43 +0000 Subject: [PATCH] Borland does not use unnamed structs in a Union --- harbour/ChangeLog | 5 +++++ harbour/source/rtl/diskspac.c | 33 ++++++++++----------------------- 2 files changed, 15 insertions(+), 23 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index b7f382f8e6..843ee16d00 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,8 @@ +20000321-19:58 EST Paul Tucker + * source/rtl/diskspac.c + * Borland does not see the unnamed struct that is part of ULARGE_INT. + * fix is to used the named version which MS conveniently supplied. + 20000321-18:55 EST Paul Tucker * source/rtl/diskspac.c * add missing { diff --git a/harbour/source/rtl/diskspac.c b/harbour/source/rtl/diskspac.c index 43a45fedcf..c565edd234 100644 --- a/harbour/source/rtl/diskspac.c +++ b/harbour/source/rtl/diskspac.c @@ -106,20 +106,6 @@ double hb_DiskSpace( USHORT uiDrive, USHORT uiType ) typedef BOOL (WINAPI *P_GDFSE)(LPCTSTR, PULARGE_INTEGER, PULARGE_INTEGER, PULARGE_INTEGER); - #if defined( __BORLANDC__ ) - typedef union _LARGE_INTEGER { - struct { - DWORD LowPart; - LONG HighPart; - }; - struct { - DWORD LowPart; - LONG HighPart; - } u; - LONGLONG QuadPart; - } LARGE_INTEGER; - #endif - char szPath[ 4 ]; P_GDFSE pGetDiskFreeSpaceEx; @@ -150,9 +136,9 @@ double hb_DiskSpace( USHORT uiDrive, USHORT uiType ) i64RetVal; if( pGetDiskFreeSpaceEx( szPath, - &i64FreeBytesToCaller, - &i64TotalBytes, - &i64FreeBytes ) ) + ( PULARGE_INTEGER ) &i64FreeBytesToCaller, + ( PULARGE_INTEGER ) &i64TotalBytes, + ( PULARGE_INTEGER ) &i64FreeBytes ) ) { switch( uiType ) { @@ -169,17 +155,17 @@ double hb_DiskSpace( USHORT uiDrive, USHORT uiType ) memcpy( &i64RetVal, &i64TotalBytes, sizeof( ULARGE_INTEGER ) ); } - dSpace = ( double ) i64RetVal.HighPart + - ( double ) i64RetVal.HighPart * + dSpace = ( double ) i64RetVal.u.HighPart + + ( double ) i64RetVal.u.HighPart * ( double ) 0xffffffff ; - dSpace += ( double ) i64RetVal.LowPart ; + dSpace += ( double ) i64RetVal.u.LowPart ; if( uiType == HB_DISK_USED ) { - dSpace -= ( double ) i64FreeBytes.HighPart + - ( double ) i64FreeBytes.HighPart * + dSpace -= ( double ) i64FreeBytes.u.HighPart + + ( double ) i64FreeBytes.u.HighPart * ( double ) 0xffffffff ; - dSpace -= ( double ) i64FreeBytes.LowPart ; + dSpace -= ( double ) i64FreeBytes.u.LowPart ; } } } @@ -225,6 +211,7 @@ double hb_DiskSpace( USHORT uiDrive, USHORT uiType ) #else HB_SYMBOL_UNUSED( uiDrive ); + HB_SYMBOL_UNUSED( uiType ); #endif