2009-08-07 11:55 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* source/rtl/filesys.c
    ! Fixed FO_EXCL flag on win/wce platforms. It was ignored before.
    % Deleted some unnecessary casts.

  * contrib/hbtip/log.prg
    ! Fixed to avoid infinite loops when trying to create log files
      on a non-existing path.
This commit is contained in:
Viktor Szakats
2009-08-07 09:56:48 +00:00
parent 77358a7e0b
commit da64dfe53a
3 changed files with 16 additions and 13 deletions

View File

@@ -17,6 +17,15 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-08-07 11:55 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* source/rtl/filesys.c
! Fixed FO_EXCL flag on win/wce platforms. It was ignored before.
% Deleted some unnecessary casts.
* contrib/hbtip/log.prg
! Fixed to avoid infinite loops when trying to create log files
on a non-existing path.
2009-08-07 11:11 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* contrib/hbtip/Makefile
+ contrib/hbtip/log.prg

View File

@@ -97,7 +97,8 @@ METHOD Add( cMsg ) CLASS TIPLOG
n := 1
DO WHILE .T.
::fhnd := hb_FCreate( hb_FNameMerge( cDir, cName + "-" + hb_ntos( n ), cExt ), NIL, FO_EXCL )
IF ::fhnd != F_ERROR
IF ::fhnd != F_ERROR .OR. ;
FError() == 3 /* path not found */
EXIT
ENDIF
n++

View File

@@ -320,7 +320,7 @@ static void convert_open_flags( BOOL fCreate, ULONG ulAttr, USHORT uiFlags,
{
if( fCreate )
{
*dwCreat = CREATE_ALWAYS;
*dwCreat = ( uiFlags & FO_EXCL ) ? CREATE_NEW : CREATE_ALWAYS;
*dwMode = GENERIC_READ | GENERIC_WRITE;
}
else
@@ -335,13 +335,9 @@ static void convert_open_flags( BOOL fCreate, ULONG ulAttr, USHORT uiFlags,
*dwCreat = OPEN_ALWAYS;
}
else if( uiFlags & FO_TRUNC )
{
*dwCreat = TRUNCATE_EXISTING;
}
else
{
*dwCreat = OPEN_EXISTING;
}
*dwMode = 0;
switch( uiFlags & ( FO_READ | FO_WRITE | FO_READWRITE ) )
@@ -664,8 +660,7 @@ HB_FHANDLE hb_fsOpen( const char * pFilename, USHORT uiFlags )
convert_open_flags( FALSE, FC_NORMAL, uiFlags, &dwMode, &dwShare, &dwCreat, &dwAttr );
hb_vmUnlock();
hFile = ( HANDLE ) CreateFileA( pFilename, dwMode, dwShare,
NULL, dwCreat, dwAttr, NULL );
hFile = CreateFileA( pFilename, dwMode, dwShare, NULL, dwCreat, dwAttr, NULL );
hb_fsSetIOError( hFile != ( HANDLE ) INVALID_HANDLE_VALUE, 0 );
hb_vmLock();
@@ -724,8 +719,7 @@ HB_FHANDLE hb_fsCreate( const char * pFilename, ULONG ulAttr )
convert_open_flags( TRUE, ulAttr, FO_EXCLUSIVE, &dwMode, &dwShare, &dwCreat, &dwAttr );
hb_vmUnlock();
hFile = ( HANDLE ) CreateFileA( pFilename, dwMode, dwShare,
NULL, dwCreat, dwAttr, NULL );
hFile = CreateFileA( pFilename, dwMode, dwShare, NULL, dwCreat, dwAttr, NULL );
hb_fsSetIOError( hFile != ( HANDLE ) INVALID_HANDLE_VALUE, 0 );
hb_vmLock();
@@ -784,8 +778,7 @@ HB_FHANDLE hb_fsCreateEx( const char * pFilename, ULONG ulAttr, USHORT uiFlags )
convert_open_flags( TRUE, ulAttr, uiFlags, &dwMode, &dwShare, &dwCreat, &dwAttr );
hb_vmUnlock();
hFile = ( HANDLE ) CreateFileA( pFilename, dwMode, dwShare,
NULL, dwCreat, dwAttr, NULL );
hFile = CreateFileA( pFilename, dwMode, dwShare, NULL, dwCreat, dwAttr, NULL );
hb_fsSetIOError( hFile != ( HANDLE ) INVALID_HANDLE_VALUE, 0 );
hb_vmLock();
@@ -1895,7 +1888,7 @@ void hb_fsCommit( HB_FHANDLE hFileHandle )
{
hb_vmUnlock();
#if defined( HB_IO_WIN )
hb_fsSetIOError( FlushFileBuffers( ( HANDLE ) DosToWinHandle( hFileHandle ) ), 0 );
hb_fsSetIOError( FlushFileBuffers( DosToWinHandle( hFileHandle ) ), 0 );
#else
#if defined( __WATCOMC__ )
hb_fsSetIOError( fsync( hFileHandle ) == 0, 0 );