ChangeLogTag:19990826-03:25 GMT+1 Bruno Cantero <bruno@issnet.net>

This commit is contained in:
Bruno Cantero
1999-08-26 01:40:02 +00:00
parent dad9264dc3
commit 325f110e24
2 changed files with 32 additions and 1 deletions

View File

@@ -1,3 +1,7 @@
19990826-03:25 GMT+1 Bruno Cantero <bruno@issnet.net>
* source/rtl/filesys.c
+ Changed hb_fsOpen for support shared files (MSVC)
19990825-23:30 GMT+1 Victor Szel <info@szelvesz.hu>
* source/compiler/harbour.y

View File

@@ -135,8 +135,13 @@ static int convert_open_flags( USHORT uiFlags )
result_flags |= O_BINARY;
#if defined(_MSC_VER)
if( uiFlags == 0 )
result_flags = O_RDONLY;
#else
if( uiFlags == 0 )
result_flags |= O_RDONLY | SH_COMPAT;
#endif
/* read & write flags */
if( uiFlags & FO_WRITE )
@@ -145,6 +150,7 @@ static int convert_open_flags( USHORT uiFlags )
if( uiFlags & FO_READWRITE )
result_flags |= O_RDWR;
#if ! defined(_MSC_VER)
/* shared flags */
if( uiFlags & FO_EXCLUSIVE )
result_flags |= SH_DENYRW;
@@ -160,6 +166,7 @@ static int convert_open_flags( USHORT uiFlags )
if( uiFlags & FO_SHARED )
result_flags |= SH_DENYNO;
#endif
return result_flags;
}
@@ -218,8 +225,28 @@ FHANDLE hb_fsOpen ( BYTE * pFilename, USHORT uiFlags )
#if defined(_MSC_VER)
int iShare = -1;
if( uiFlags & FO_EXCLUSIVE )
iShare = _SH_DENYRW;
if( uiFlags & FO_DENYWRITE )
iShare = _SH_DENYWR;
if( uiFlags & FO_DENYREAD )
iShare = _SH_DENYRD;
if( uiFlags & FO_DENYNONE )
iShare = _SH_DENYNO;
if( uiFlags & FO_SHARED )
iShare = _SH_DENYNO;
errno = 0;
hFileHandle = _open( ( char * ) pFilename, convert_open_flags( uiFlags ) );
if( iShare )
hFileHandle = _sopen( ( char * ) pFilename, convert_open_flags( uiFlags ), iShare );
else
hFileHandle = _open( ( char * ) pFilename, convert_open_flags( uiFlags ) );
s_uiErrorLast = errno;
#else