From c3c9bc4e89a71e11a21e432eb99da77fd35c82a4 Mon Sep 17 00:00:00 2001 From: Viktor Szakats Date: Thu, 9 Oct 2008 08:06:47 +0000 Subject: [PATCH] 2008-10-09 09:57 UTC+0200 Viktor Szakats (harbour.01 syenar hu) * include/hbextern.ch + Added missing HB_DISABLEWAITLOCKS(). ; NOTE: This looks like a hack to add FLX_WAIT flag for locks app-wide, and on Windows systems only. IMO we should not have such hacks in core, or if this is really important it should support all possible platforms. It also has a low-level function equivalent, which is missing from hbapifs.h. There is no reference to these function in any Harbour or xhb changelogs. If there are no objections, I'd like remove this functionality. * source/rtl/hbrandom.c * source/rtl/filesys.c * Minor formatting. --- harbour/ChangeLog | 19 +++++++++++++++++++ harbour/include/hbextern.ch | 1 + harbour/source/rtl/filesys.c | 30 +++++++++++++++--------------- harbour/source/rtl/hbrandom.c | 1 + 4 files changed, 36 insertions(+), 15 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 79ea36b898..be2668998c 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,25 @@ 2008-12-31 13:59 UTC+0100 Foo Bar (foo.bar foobar.org) */ +2008-10-09 09:57 UTC+0200 Viktor Szakats (harbour.01 syenar hu) + * include/hbextern.ch + + Added missing HB_DISABLEWAITLOCKS(). + ; NOTE: This looks like a hack to add FLX_WAIT flag + for locks app-wide, and on Windows systems only. + IMO we should not have such hacks in core, or if + this is really important it should support all + possible platforms. + It also has a low-level function equivalent, + which is missing from hbapifs.h. There is no + reference to these function in any Harbour or + xhb changelogs. + If there are no objections, I'd like remove + this functionality. + + * source/rtl/hbrandom.c + * source/rtl/filesys.c + * Minor formatting. + 2008-10-09 03:26 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) * harbour/include/hbcompdf.h * harbour/source/compiler/hbmain.c diff --git a/harbour/include/hbextern.ch b/harbour/include/hbextern.ch index 5e62751c40..c5e21ef584 100644 --- a/harbour/include/hbextern.ch +++ b/harbour/include/hbextern.ch @@ -862,6 +862,7 @@ EXTERNAL HB_GETENV EXTERNAL HB_USERNAME EXTERNAL HB_RUN EXTERNAL HB_GETREADVAR +EXTERNAL HB_DISABLEWAITLOCKS EXTERNAL HB_INISETCOMMENT EXTERNAL HB_INIREAD diff --git a/harbour/source/rtl/filesys.c b/harbour/source/rtl/filesys.c index ab8d5a91c9..6bbbf11af2 100644 --- a/harbour/source/rtl/filesys.c +++ b/harbour/source/rtl/filesys.c @@ -317,7 +317,7 @@ static HANDLE DosToWinHandle( HB_FHANDLE fHandle ) return GetStdHandle( STD_OUTPUT_HANDLE ); else if( fHandle == ( HB_FHANDLE ) 2 ) - return GetStdHandle( STD_ERROR_HANDLE) ; + return GetStdHandle( STD_ERROR_HANDLE); else return ( HANDLE ) fHandle; @@ -1366,7 +1366,7 @@ HB_EXPORT USHORT hb_fsRead( HB_FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount #if defined(HB_WIN32_IO) { - DWORD dwRead ; + DWORD dwRead; BOOL fResult; hb_vmUnlock(); @@ -1891,14 +1891,14 @@ HB_EXPORT BOOL hb_fsLock( HB_FHANDLE hFileHandle, ULONG ulStart, { if( hb_iswinnt() ) { - OVERLAPPED sOlap ; - DWORD dwFlags ; - memset( &sOlap, 0, sizeof( OVERLAPPED ) ) ; - sOlap.Offset = ( ULONG ) ulStart ; - dwFlags = ( uiMode & FLX_SHARED ) ? 0 : LOCKFILE_EXCLUSIVE_LOCK ; + OVERLAPPED sOlap; + DWORD dwFlags; + memset( &sOlap, 0, sizeof( OVERLAPPED ) ); + sOlap.Offset = ( ULONG ) ulStart; + dwFlags = ( uiMode & FLX_SHARED ) ? 0 : LOCKFILE_EXCLUSIVE_LOCK; if( !s_fUseWaitLocks || !( uiMode & FLX_WAIT ) ) { - dwFlags |= LOCKFILE_FAIL_IMMEDIATELY ; + dwFlags |= LOCKFILE_FAIL_IMMEDIATELY; } bResult = LockFileEx( DosToWinHandle( hFileHandle ), dwFlags, 0, ulLength, 0, &sOlap ); } @@ -1912,9 +1912,9 @@ HB_EXPORT BOOL hb_fsLock( HB_FHANDLE hFileHandle, ULONG ulStart, { if( hb_iswinnt() ) { - OVERLAPPED sOlap ; - memset( &sOlap, 0, sizeof( OVERLAPPED ) ) ; - sOlap.Offset = ( ULONG ) ulStart ; + OVERLAPPED sOlap; + memset( &sOlap, 0, sizeof( OVERLAPPED ) ); + sOlap.Offset = ( ULONG ) ulStart; bResult = UnlockFileEx( DosToWinHandle( hFileHandle ), 0, ulLength,0, &sOlap ); } else @@ -2100,13 +2100,13 @@ HB_EXPORT BOOL hb_fsLockLarge( HB_FHANDLE hFileHandle, HB_FOFFSET ulStart, case FL_LOCK: if( hb_iswinnt() ) { - OVERLAPPED sOlap ; - DWORD dwFlags ; + OVERLAPPED sOlap; + DWORD dwFlags; dwFlags = ( ( uiMode & FLX_SHARED ) ? 0 : LOCKFILE_EXCLUSIVE_LOCK ); if( !s_fUseWaitLocks || !( uiMode & FLX_WAIT ) ) { - dwFlags |= LOCKFILE_FAIL_IMMEDIATELY ; + dwFlags |= LOCKFILE_FAIL_IMMEDIATELY; } memset( &sOlap, 0, sizeof( OVERLAPPED ) ); @@ -2127,7 +2127,7 @@ HB_EXPORT BOOL hb_fsLockLarge( HB_FHANDLE hFileHandle, HB_FOFFSET ulStart, case FL_UNLOCK: if( hb_iswinnt() ) { - OVERLAPPED sOlap ; + OVERLAPPED sOlap; memset( &sOlap, 0, sizeof( OVERLAPPED ) ); sOlap.Offset = dwOffsetLo; diff --git a/harbour/source/rtl/hbrandom.c b/harbour/source/rtl/hbrandom.c index 3a7169b5e1..f7139d3cf7 100644 --- a/harbour/source/rtl/hbrandom.c +++ b/harbour/source/rtl/hbrandom.c @@ -52,6 +52,7 @@ #include "hbmath.h" #include "hbdate.h" + #include #if !defined( HB_OS_WIN_32 )