19991104-23:45 GMT+1

This commit is contained in:
Viktor Szakats
1999-11-04 22:58:53 +00:00
parent f29d69065a
commit 55b554fa92
2 changed files with 33 additions and 14 deletions

View File

@@ -1,3 +1,10 @@
19991104-23:45 GMT+1 Victor Szel <info@szelvesz.hu>
* source/rtl/filesys.c
! hb_fsSeek() now returns 0 instead of -1 on error, just like Clipper.
% hb_fsSeek() double assigments removed.
! hb_fsLock() last error code handling fixed for some platforms.
% hb_fsCommit() small simplification, double assignment removed.
19991104-14:30 EDT David G. Holm <dholm@jsd-llc.com>
* source/pp/stdalone/hbpp.c

View File

@@ -452,7 +452,6 @@ void hb_fsClose( FHANDLE hFileHandle )
/* Convert 'Invalid Memory Block' to 'Invalid Handle' */
if( s_uiErrorLast == 9 )
s_uiErrorLast = 6;
}
void hb_fsSetDevMode( FHANDLE hFileHandle, USHORT uiDevMode )
@@ -518,7 +517,7 @@ USHORT hb_fsRead( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount )
errno = 0;
uiRead = read( hFileHandle, pBuff, uiCount );
s_uiErrorLast = errno;
if( uiRead == ( USHORT )-1 )
if( uiRead == ( USHORT ) -1 )
uiRead = 0;
#else
@@ -542,7 +541,7 @@ USHORT hb_fsWrite( FHANDLE hFileHandle, BYTE * pBuff, USHORT uiCount )
errno = 0;
uiWritten = write( hFileHandle, pBuff, uiCount );
s_uiErrorLast = errno;
if( uiWritten == ( USHORT )-1 )
if( uiWritten == ( USHORT ) -1 )
uiWritten = 0;
#else
@@ -589,7 +588,7 @@ ULONG hb_fsReadLarge( FHANDLE hFileHandle, BYTE * pBuff, ULONG ulCount )
/* -1 on bad hFileHandle
0 on disk full
*/
if( uiRead == ( USHORT )-1 || uiRead == 0 )
if( uiRead == ( USHORT ) -1 || uiRead == 0 )
break;
ulRead += ( ULONG ) uiRead;
@@ -636,7 +635,7 @@ ULONG hb_fsWriteLarge( FHANDLE hFileHandle, BYTE * pBuff, ULONG ulCount )
/* -1 on bad hFileHandle
0 on disk full
*/
if( uiWritten == ( USHORT )-1 || uiWritten == 0 )
if( uiWritten == ( USHORT ) -1 || uiWritten == 0 )
break;
ulWritten += ( ULONG ) uiWritten;
@@ -657,23 +656,33 @@ ULONG hb_fsWriteLarge( FHANDLE hFileHandle, BYTE * pBuff, ULONG ulCount )
ULONG hb_fsSeek( FHANDLE hFileHandle, LONG lOffset, USHORT uiFlags )
{
ULONG ulPos = -1;
ULONG ulPos;
USHORT Flags;
HB_TRACE(HB_TR_DEBUG, ("hb_fsSeek(%p, %ld, %hu)", hFileHandle, lOffset, uiFlags));
Flags = convert_seek_flags( uiFlags );
if( lOffset < 0 && Flags == SEEK_SET )
{
/* 'Seek Error' */
s_uiErrorLast = 25;
#if defined(HAVE_POSIX_IO) || defined(_MSC_VER) || defined(__MINGW32__)
/* get current offset */
errno = 0;
ulPos = lseek( hFileHandle, 0, SEEK_CUR );
if( errno != 0 )
{
ulPos = 0;
s_uiErrorLast = errno;
}
else
s_uiErrorLast = 25; /* 'Seek Error' */
#else
ulPos = 0;
s_uiErrorLast = 25; /* 'Seek Error' */
#endif
@@ -685,6 +694,8 @@ ULONG hb_fsSeek( FHANDLE hFileHandle, LONG lOffset, USHORT uiFlags )
errno = 0;
ulPos = lseek( hFileHandle, lOffset, Flags );
if( errno != 0 )
ulPos = 0;
s_uiErrorLast = errno;
#else
@@ -697,7 +708,6 @@ ULONG hb_fsSeek( FHANDLE hFileHandle, LONG lOffset, USHORT uiFlags )
/* Convert 'Unknown Command' to 'Seek Error' */
if( s_uiErrorLast == 22 )
s_uiErrorLast = 25;
}
return ulPos;
@@ -819,6 +829,7 @@ BOOL hb_fsLock ( FHANDLE hFileHandle, ULONG ulStart,
{
ULONG ulOldPos = hb_fsSeek( hFileHandle, ulStart, FS_SET );
errno = 0;
switch( uiMode )
{
case FL_LOCK:
@@ -832,6 +843,7 @@ BOOL hb_fsLock ( FHANDLE hFileHandle, ULONG ulStart,
default:
iResult = 0;
}
s_uiErrorLast = errno;
hb_fsSeek( hFileHandle, ulOldPos, FS_SET );
}
@@ -841,6 +853,7 @@ BOOL hb_fsLock ( FHANDLE hFileHandle, ULONG ulStart,
{
ULONG ulOldPos = hb_fsSeek( hFileHandle, ulStart, FS_SET );
errno = 0;
switch( uiMode )
{
case FL_LOCK:
@@ -854,6 +867,7 @@ BOOL hb_fsLock ( FHANDLE hFileHandle, ULONG ulStart,
default:
iResult = 0;
}
s_uiErrorLast = errno;
hb_fsSeek( hFileHandle, ulOldPos, FS_SET );
}
@@ -878,14 +892,12 @@ void hb_fsCommit( FHANDLE hFileHandle )
int dup_handle;
errno = 0;
dup_handle = dup( hFileHandle );
s_uiErrorLast = errno;
dup_handle = dup( hFileHandle );
if( dup_handle != -1 )
{
close( dup_handle );
s_uiErrorLast = errno;
}
s_uiErrorLast = errno;
}
#else