2010-07-08 08:50 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)

* src/rtl/filesys.c
  * src/rtl/filebuf.c
  * src/rtl/fssize.c
    * HB_FOFFSET vars renamed to have n prefix (instead of ul and ll)

  * contrib/make.hbs
    ! Fixed output dirs in stdalone mode.

  * contrib/hbsqlit3/hbsqlit3.c
  * contrib/hbwin/olecore.c
  * contrib/hbwin/win_bmp.c
    * HB_SIZE vars renamed.

  * utils/hbmk2/hbmk2.prg
    % Never delete the same file twice in -hbimplib -clean mode.
This commit is contained in:
Viktor Szakats
2010-07-08 06:50:49 +00:00
parent b5417e890f
commit b03d24742a
9 changed files with 183 additions and 143 deletions

View File

@@ -16,9 +16,26 @@
The license applies to all entries newer than 2009-04-28.
*/
2010-07-08 08:50 UTC+0200 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/filesys.c
* src/rtl/filebuf.c
* src/rtl/fssize.c
* HB_FOFFSET vars renamed to have n prefix (instead of ul and ll)
* contrib/make.hbs
! Fixed output dirs in stdalone mode.
* contrib/hbsqlit3/hbsqlit3.c
* contrib/hbwin/olecore.c
* contrib/hbwin/win_bmp.c
* HB_SIZE vars renamed.
* utils/hbmk2/hbmk2.prg
% Never delete the same file twice in -hbimplib -clean mode.
2010-07-07 23:20 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
* contrib/hbide/hbide.prg
! Fixed: no-show of source's contents when a panel was hosting
! Fixed: no-show of source's contents when a panel was hosting
only one source. Now source is visible loaded.
2010-07-07 18:44 UTC-0800 Pritpal Bedi (bedipritpal@hotmail.com)
@@ -26,8 +43,8 @@
* contrib/hbide/idesaveload.prg
* contrib/hbide/idestylesheets.prg
* contrib/hbide/setup.ui
+ Implemented: application of constructed gradients to hbIDE components.
Now n number of gradients can be defined to be applied to
+ Implemented: application of constructed gradients to hbIDE components.
Now n number of gradients can be defined to be applied to
hbIDE. "Toggle Animation" respects these settings as well.
<Setup Dialog><Themes> provides you with necessary constructs
to define and apply. Still the last applied is not saved: TODO.

View File

@@ -1807,16 +1807,16 @@ HB_FUNC( SQLITE3_FILE_TO_BUFF )
if( handle != FS_ERROR )
{
char *buffer;
HB_SIZE iSize;
HB_SIZE nSize;
iSize = hb_fsSeek( handle, 0, FS_END );
nSize = hb_fsSeek( handle, 0, FS_END );
hb_fsSeek( handle, 0, FS_SET );
buffer = ( char * ) hb_xgrab( iSize + 1 );
iSize = hb_fsReadLarge( handle, buffer, iSize );
buffer[iSize] = '\0';
buffer = ( char * ) hb_xgrab( nSize + 1 );
nSize = hb_fsReadLarge( handle, buffer, nSize );
buffer[nSize] = '\0';
hb_fsClose( handle );
hb_retclen_buffer( buffer, iSize );
hb_retclen_buffer( buffer, nSize );
}
else
{
@@ -1827,11 +1827,11 @@ HB_FUNC( SQLITE3_FILE_TO_BUFF )
HB_FUNC( SQLITE3_BUFF_TO_FILE )
{
HB_FHANDLE handle = hb_fsCreate( hb_parcx(1), FC_NORMAL );
HB_SIZE iSize = hb_parcsiz( 2 ) - 1;
HB_SIZE nSize = hb_parcsiz( 2 ) - 1;
if( handle != FS_ERROR && iSize > 0 )
if( handle != FS_ERROR && nSize > 0 )
{
hb_retni( hb_fsWriteLarge(handle, hb_parcx(2), iSize) == iSize ? 0 : -1 );
hb_retni( hb_fsWriteLarge( handle, hb_parcx(2), nSize ) == nSize ? 0 : -1 );
hb_fsClose( handle );
}
else

View File

@@ -480,12 +480,12 @@ static void hb_oleItemToVariantRef( VARIANT* pVariant, PHB_ITEM pItem,
{
SAFEARRAY* pSafeArray;
SAFEARRAYBOUND sabound[ 1 ];
HB_SIZE ul, ulLen;
HB_SIZE n, nLen;
ulLen = hb_arrayLen( pItem );
nLen = hb_arrayLen( pItem );
sabound[ 0 ].lLbound = 0;
sabound[ 0 ].cElements = ( long ) ulLen;
sabound[ 0 ].cElements = ( long ) nLen;
pSafeArray = SafeArrayCreate( VT_VARIANT, 1, sabound );
pVariant->n1.n2.vt = VT_VARIANT | VT_ARRAY;
@@ -496,14 +496,14 @@ static void hb_oleItemToVariantRef( VARIANT* pVariant, PHB_ITEM pItem,
pVarRef->n1.n2.n3.pparray = &pVariant->n1.n2.n3.parray;
}
for( ul = 0; ul < ulLen; ul++ )
for( n = 0; n < nLen; n++ )
{
VARIANT vItem;
long lIndex[ 1 ];
VariantInit( &vItem );
hb_oleItemToVariantRef( &vItem, hb_arrayGetItemPtr( pItem, ul + 1 ), NULL, pObjFunc );
lIndex[ 0 ] = ( long ) ul;
hb_oleItemToVariantRef( &vItem, hb_arrayGetItemPtr( pItem, n + 1 ), NULL, pObjFunc );
lIndex[ 0 ] = ( long ) n;
SafeArrayPutElement( pSafeArray, lIndex, &vItem );
VariantClear( &vItem );
}

View File

@@ -100,19 +100,19 @@ HB_FUNC( WIN_LOADBITMAPFILE )
if( fhnd != FS_ERROR )
{
HB_SIZE ulSize = hb_fsSeek( fhnd, 0, FS_END );
HB_SIZE nSize = hb_fsSeek( fhnd, 0, FS_END );
/* TOFIX: No check is done on read data from disk which is a large security hole
and may cause GPF even in simple error cases, like invalid file content.
[vszakats] */
if( ulSize > 2 && ulSize <= ( 32 * 1024 * 1024 ) )
if( nSize > 2 && nSize <= ( 32 * 1024 * 1024 ) )
{
void * pbmfh = hb_xgrab( ulSize );
void * pbmfh = hb_xgrab( nSize );
hb_fsSeek( fhnd, 0, FS_SET );
if( hb_fsReadLarge( fhnd, pbmfh, ulSize ) == ulSize && hbwin_bitmapType( pbmfh, ulSize ) != HB_WIN_BITMAP_UNKNOWN )
hb_retclen_buffer( ( char * ) pbmfh, ulSize );
if( hb_fsReadLarge( fhnd, pbmfh, nSize ) == nSize && hbwin_bitmapType( pbmfh, nSize ) != HB_WIN_BITMAP_UNKNOWN )
hb_retclen_buffer( ( char * ) pbmfh, nSize );
else
hb_xfree( pbmfh );
}

View File

@@ -58,7 +58,7 @@ PROCEDURE Main( ... )
*/
PROCEDURE StandAlone( ... )
LOCAL cBase := ""
LOCAL cRoot := "../"
LOCAL cRoot := StrTran( hb_DirBase(), hb_ps(), "/" ) + "../"
LOCAL aParams
LOCAL aLibs
@@ -174,7 +174,7 @@ PROCEDURE StandAlone( ... )
ENDIF
ENDIF
call_hbmk2( hb_DirBase() + cRoot + "bin" + hb_ps(), cBase + cProject, cTargetDir, cOptionsPre, cOptionsPost, .F. )
call_hbmk2( cRoot + "bin" + hb_ps(), cBase + cProject, cTargetDir, cOptionsPre, cOptionsPost, .F. )
NEXT
ErrorLevel( 0 )
@@ -193,6 +193,7 @@ PROCEDURE StandAlone( ... )
#4 install clean install install clean _ACT_INC_INST -inc -instpath=
clean install clean _ACT_CLEAN -clean
#5 all _ACT_INC -inc
*/
PROCEDURE GNUMake( ... )

View File

@@ -166,7 +166,7 @@ static PHB_FILE hb_fileNew( HB_FHANDLE hFile, HB_BOOL fShared, HB_BOOL fReadonly
return pFile;
}
static HB_UINT hb_fileFindOffset( PHB_FILE pFile, HB_FOFFSET ulOffset )
static HB_UINT hb_fileFindOffset( PHB_FILE pFile, HB_FOFFSET nOffset )
{
HB_UINT uiFirst, uiLast, uiMiddle;
@@ -176,9 +176,9 @@ static HB_UINT hb_fileFindOffset( PHB_FILE pFile, HB_FOFFSET ulOffset )
while( uiFirst < uiLast )
{
HB_FOFFSET ulEnd = pFile->pLocks[ uiMiddle ].start +
pFile->pLocks[ uiMiddle ].len;
if( ulEnd <= ulOffset )
HB_FOFFSET nEnd = pFile->pLocks[ uiMiddle ].start +
pFile->pLocks[ uiMiddle ].len;
if( nEnd <= nOffset )
uiFirst = uiMiddle + 1;
else
uiLast = uiMiddle;
@@ -189,7 +189,7 @@ static HB_UINT hb_fileFindOffset( PHB_FILE pFile, HB_FOFFSET ulOffset )
}
static void hb_fileInsertLock( PHB_FILE pFile, HB_UINT uiPos,
HB_FOFFSET ulStart, HB_FOFFSET ulLen )
HB_FOFFSET nStart, HB_FOFFSET nLen )
{
if( pFile->uiLocks == pFile->uiSize )
{
@@ -201,8 +201,8 @@ static void hb_fileInsertLock( PHB_FILE pFile, HB_UINT uiPos,
}
memmove( &pFile->pLocks[ uiPos + 1 ], &pFile->pLocks[ uiPos ],
( pFile->uiLocks - uiPos ) * sizeof( HB_FLOCK ) );
pFile->pLocks[ uiPos ].start = ulStart;
pFile->pLocks[ uiPos ].len = ulLen;
pFile->pLocks[ uiPos ].start = nStart;
pFile->pLocks[ uiPos ].len = nLen;
pFile->uiLocks++;
}
@@ -220,44 +220,44 @@ static void hb_fileDeleteLock( PHB_FILE pFile, HB_UINT uiPos )
}
static HB_BOOL hb_fileSetLock( PHB_FILE pFile, HB_BOOL * pfLockFS,
HB_FOFFSET ulStart, HB_FOFFSET ulLen )
HB_FOFFSET nStart, HB_FOFFSET nLen )
{
HB_BOOL fLJoin, fRJoin;
HB_UINT uiPos;
uiPos = hb_fileFindOffset( pFile, ulStart );
uiPos = hb_fileFindOffset( pFile, nStart );
fLJoin = fRJoin = HB_FALSE;
if( uiPos < pFile->uiLocks )
{
PHB_FLOCK pLock = &pFile->pLocks[ uiPos ];
if( ulStart + ulLen > pLock->start )
if( nStart + nLen > pLock->start )
return HB_FALSE;
if( ulStart + ulLen == pLock->start )
if( nStart + nLen == pLock->start )
fRJoin = HB_TRUE;
}
if( uiPos > 0 )
{
PHB_FLOCK pLock = &pFile->pLocks[ uiPos - 1 ];
if( pLock->start + pLock->len == ulStart )
if( pLock->start + pLock->len == nStart )
fLJoin = HB_TRUE;
}
if( fLJoin )
{
if( fRJoin )
{
pFile->pLocks[ uiPos - 1 ].len += ulLen + pFile->pLocks[ uiPos ].len;
pFile->pLocks[ uiPos - 1 ].len += nLen + pFile->pLocks[ uiPos ].len;
hb_fileDeleteLock( pFile, uiPos );
}
else
pFile->pLocks[ uiPos - 1 ].len += ulLen;
pFile->pLocks[ uiPos - 1 ].len += nLen;
}
else if( fRJoin )
{
pFile->pLocks[ uiPos ].start -= ulLen;
pFile->pLocks[ uiPos ].len += ulLen;
pFile->pLocks[ uiPos ].start -= nLen;
pFile->pLocks[ uiPos ].len += nLen;
}
else
hb_fileInsertLock( pFile, uiPos, ulStart, ulLen );
hb_fileInsertLock( pFile, uiPos, nStart, nLen );
if( pFile->shared )
* pfLockFS = HB_TRUE;
@@ -265,35 +265,35 @@ static HB_BOOL hb_fileSetLock( PHB_FILE pFile, HB_BOOL * pfLockFS,
}
static HB_BOOL hb_fileUnlock( PHB_FILE pFile, HB_BOOL * pfLockFS,
HB_FOFFSET ulStart, HB_FOFFSET ulLen )
HB_FOFFSET nStart, HB_FOFFSET nLen )
{
HB_BOOL fResult = HB_FALSE;
HB_UINT uiPos;
uiPos = hb_fileFindOffset( pFile, ulStart );
uiPos = hb_fileFindOffset( pFile, nStart );
if( uiPos < pFile->uiLocks )
{
PHB_FLOCK pLock = &pFile->pLocks[ uiPos ];
if( ulStart >= pLock->start &&
ulStart + ulLen <= pLock->start + pLock->len )
if( nStart >= pLock->start &&
nStart + nLen <= pLock->start + pLock->len )
{
if( ulStart == pLock->start )
if( nStart == pLock->start )
{
if( ulLen == pLock->len )
if( nLen == pLock->len )
hb_fileDeleteLock( pFile, uiPos );
else
{
pLock->start += ulLen;
pLock->len -= ulLen;
pLock->start += nLen;
pLock->len -= nLen;
}
}
else if( ulStart + ulLen == pLock->start + pLock->len )
pLock->len -= ulLen;
else if( nStart + nLen == pLock->start + pLock->len )
pLock->len -= nLen;
else
{
hb_fileInsertLock( pFile, uiPos + 1, ulStart + ulLen,
pLock->start + pLock->len - ulStart - ulLen );
pLock->len = ulStart - pLock->start;
hb_fileInsertLock( pFile, uiPos + 1, nStart + nLen,
pLock->start + pLock->len - nStart - nLen );
pLock->len = nStart - pLock->start;
}
if( pFile->shared )
* pfLockFS = HB_TRUE;
@@ -479,7 +479,7 @@ static void s_fileClose( PHB_FILE pFile )
hb_fsClose( hFileRO );
}
static HB_BOOL s_fileLock( PHB_FILE pFile, HB_FOFFSET ulStart, HB_FOFFSET ulLen,
static HB_BOOL s_fileLock( PHB_FILE pFile, HB_FOFFSET nStart, HB_FOFFSET nLen,
int iType )
{
HB_BOOL fResult, fLockFS = HB_FALSE;
@@ -487,25 +487,25 @@ static HB_BOOL s_fileLock( PHB_FILE pFile, HB_FOFFSET ulStart, HB_FOFFSET ulLen,
if( ( iType & FL_MASK ) == FL_UNLOCK )
{
hb_threadEnterCriticalSection( &s_fileMtx );
fResult = hb_fileUnlock( pFile, &fLockFS, ulStart, ulLen );
fResult = hb_fileUnlock( pFile, &fLockFS, nStart, nLen );
hb_threadLeaveCriticalSection( &s_fileMtx );
if( fLockFS )
hb_fsLockLarge( pFile->hFile, ulStart, ulLen, ( HB_USHORT ) iType );
hb_fsLockLarge( pFile->hFile, nStart, nLen, ( HB_USHORT ) iType );
else
hb_fsSetError( fResult ? 0 : 33 );
}
else
{
hb_threadEnterCriticalSection( &s_fileMtx );
fResult = hb_fileSetLock( pFile, &fLockFS, ulStart, ulLen );
fResult = hb_fileSetLock( pFile, &fLockFS, nStart, nLen );
hb_threadLeaveCriticalSection( &s_fileMtx );
if( fLockFS )
{
fResult = hb_fsLockLarge( pFile->hFile, ulStart, ulLen, ( HB_USHORT ) iType );
fResult = hb_fsLockLarge( pFile->hFile, nStart, nLen, ( HB_USHORT ) iType );
if( !fResult )
{
hb_threadEnterCriticalSection( &s_fileMtx );
hb_fileUnlock( pFile, &fLockFS, ulStart, ulLen );
hb_fileUnlock( pFile, &fLockFS, nStart, nLen );
hb_threadLeaveCriticalSection( &s_fileMtx );
}
}
@@ -517,20 +517,20 @@ static HB_BOOL s_fileLock( PHB_FILE pFile, HB_FOFFSET ulStart, HB_FOFFSET ulLen,
}
static HB_SIZE s_fileReadAt( PHB_FILE pFile, void * buffer, HB_SIZE nSize,
HB_FOFFSET llOffset )
HB_FOFFSET nOffset )
{
return hb_fsReadAt( pFile->hFile, buffer, nSize, llOffset );
return hb_fsReadAt( pFile->hFile, buffer, nSize, nOffset );
}
static HB_SIZE s_fileWriteAt( PHB_FILE pFile, const void * buffer, HB_SIZE nSize,
HB_FOFFSET llOffset )
HB_FOFFSET nOffset )
{
return hb_fsWriteAt( pFile->hFile, buffer, nSize, llOffset );
return hb_fsWriteAt( pFile->hFile, buffer, nSize, nOffset );
}
static HB_BOOL s_fileTruncAt( PHB_FILE pFile, HB_FOFFSET llOffset )
static HB_BOOL s_fileTruncAt( PHB_FILE pFile, HB_FOFFSET nOffset )
{
return hb_fsTruncAt( pFile->hFile, llOffset );
return hb_fsTruncAt( pFile->hFile, nOffset );
}
static HB_FOFFSET s_fileSize( PHB_FILE pFile )
@@ -663,27 +663,27 @@ void hb_fileClose( PHB_FILE pFile )
pFile->pFuncs->Close( pFile );
}
HB_BOOL hb_fileLock( PHB_FILE pFile, HB_FOFFSET ulStart, HB_FOFFSET ulLen,
HB_BOOL hb_fileLock( PHB_FILE pFile, HB_FOFFSET nStart, HB_FOFFSET nLen,
int iType )
{
return pFile->pFuncs->Lock( pFile, ulStart, ulLen, iType );
return pFile->pFuncs->Lock( pFile, nStart, nLen, iType );
}
HB_SIZE hb_fileReadAt( PHB_FILE pFile, void * buffer, HB_SIZE nSize,
HB_FOFFSET llOffset )
HB_FOFFSET nOffset )
{
return pFile->pFuncs->ReadAt( pFile, buffer, nSize, llOffset );
return pFile->pFuncs->ReadAt( pFile, buffer, nSize, nOffset );
}
HB_SIZE hb_fileWriteAt( PHB_FILE pFile, const void * buffer, HB_SIZE nSize,
HB_FOFFSET llOffset )
HB_FOFFSET nOffset )
{
return pFile->pFuncs->WriteAt( pFile, buffer, nSize, llOffset );
return pFile->pFuncs->WriteAt( pFile, buffer, nSize, nOffset );
}
HB_BOOL hb_fileTruncAt( PHB_FILE pFile, HB_FOFFSET llOffset )
HB_BOOL hb_fileTruncAt( PHB_FILE pFile, HB_FOFFSET nOffset )
{
return pFile->pFuncs->TruncAt( pFile, llOffset );
return pFile->pFuncs->TruncAt( pFile, nOffset );
}
HB_FOFFSET hb_fileSize( PHB_FILE pFile )

View File

@@ -1785,14 +1785,14 @@ HB_SIZE hb_fsReadAt( HB_FHANDLE hFileHandle, void * pBuff, HB_SIZE nCount, HB_FO
}
else
{
HB_FOFFSET llPos;
HB_FOFFSET nPos;
ULONG ulOffsetLow = ( ULONG ) ( nOffset & ULONG_MAX ),
ulOffsetHigh = ( ULONG ) ( nOffset >> 32 );
ulOffsetLow = SetFilePointer( DosToWinHandle( hFileHandle ),
ulOffsetLow, ( PLONG ) &ulOffsetHigh,
SEEK_SET );
llPos = ( ( HB_FOFFSET ) ulOffsetHigh << 32 ) | ulOffsetLow;
if( llPos == ( HB_FOFFSET ) INVALID_SET_FILE_POINTER )
nPos = ( ( HB_FOFFSET ) ulOffsetHigh << 32 ) | ulOffsetLow;
if( nPos == ( HB_FOFFSET ) INVALID_SET_FILE_POINTER )
hb_fsSetIOError( HB_FALSE, 0 );
else
hb_fsSetIOError( ReadFile( DosToWinHandle( hFileHandle ),
@@ -1809,19 +1809,19 @@ HB_SIZE hb_fsReadAt( HB_FHANDLE hFileHandle, void * pBuff, HB_SIZE nCount, HB_FO
nRead = hb_fsReadLarge( hFileHandle, pBuff, nCount );
# else
{
HB_FOFFSET llPos;
HB_FOFFSET nPos;
# if defined( HB_USE_LARGEFILE64 )
llPos = lseek64( hFileHandle, nOffset, SEEK_SET );
nPos = lseek64( hFileHandle, nOffset, SEEK_SET );
# elif defined( HB_OS_OS2 )
ULONG ulPos;
if( DosSetFilePtr( hFileHandle, nOffset, SEEK_SET, &ulPos ) == 0 )
llPos = ( HB_FOFFSET ) ulPos;
nPos = ( HB_FOFFSET ) ulPos;
else
llPos = ( HB_FOFFSET ) -1;
nPos = ( HB_FOFFSET ) -1;
# else
llPos = lseek( hFileHandle, nOffset, SEEK_SET );
nPos = lseek( hFileHandle, nOffset, SEEK_SET );
# endif
if( llPos == ( HB_FOFFSET ) -1 )
if( nPos == ( HB_FOFFSET ) -1 )
hb_fsSetIOError( HB_FALSE, 0 );
else
{
@@ -1910,14 +1910,14 @@ HB_SIZE hb_fsWriteAt( HB_FHANDLE hFileHandle, const void * pBuff, HB_SIZE nCount
}
else
{
HB_FOFFSET llPos;
HB_FOFFSET nPos;
ULONG ulOffsetLow = ( ULONG ) ( nOffset & ULONG_MAX ),
ulOffsetHigh = ( ULONG ) ( nOffset >> 32 );
ulOffsetLow = SetFilePointer( DosToWinHandle( hFileHandle ),
ulOffsetLow, ( PLONG ) &ulOffsetHigh,
SEEK_SET );
llPos = ( ( HB_FOFFSET ) ulOffsetHigh << 32 ) | ulOffsetLow;
if( llPos == ( HB_FOFFSET ) INVALID_SET_FILE_POINTER )
nPos = ( ( HB_FOFFSET ) ulOffsetHigh << 32 ) | ulOffsetLow;
if( nPos == ( HB_FOFFSET ) INVALID_SET_FILE_POINTER )
hb_fsSetIOError( HB_FALSE, 0 );
else
hb_fsSetIOError( WriteFile( DosToWinHandle( hFileHandle ),
@@ -1934,19 +1934,19 @@ HB_SIZE hb_fsWriteAt( HB_FHANDLE hFileHandle, const void * pBuff, HB_SIZE nCount
nWritten = hb_fsWriteLarge( hFileHandle, pBuff, nCount );
# else
{
HB_FOFFSET llPos;
HB_FOFFSET nPos;
# if defined( HB_USE_LARGEFILE64 )
llPos = lseek64( hFileHandle, nOffset, SEEK_SET );
nPos = lseek64( hFileHandle, nOffset, SEEK_SET );
# elif defined( HB_OS_OS2 )
ULONG ulPos;
if( DosSetFilePtr( hFileHandle, nOffset, SEEK_SET, &ulPos ) == 0 )
llPos = ( HB_FOFFSET ) ulPos;
nPos = ( HB_FOFFSET ) ulPos;
else
llPos = ( HB_FOFFSET ) -1;
nPos = ( HB_FOFFSET ) -1;
# else
llPos = lseek( hFileHandle, nOffset, SEEK_SET );
nPos = lseek( hFileHandle, nOffset, SEEK_SET );
# endif
if( llPos == ( HB_FOFFSET ) -1 )
if( nPos == ( HB_FOFFSET ) -1 )
hb_fsSetIOError( HB_FALSE, 0 );
else
{
@@ -2450,7 +2450,7 @@ HB_ULONG hb_fsSeek( HB_FHANDLE hFileHandle, HB_LONG lOffset, HB_USHORT uiFlags )
HB_FOFFSET hb_fsSeekLarge( HB_FHANDLE hFileHandle, HB_FOFFSET nOffset, HB_USHORT uiFlags )
{
HB_FOFFSET llPos;
HB_FOFFSET nPos;
HB_TRACE(HB_TR_DEBUG, ("hb_fsSeekLarge(%p, %" PFHL "i, %hu)", ( void * ) ( HB_PTRDIFF ) hFileHandle, nOffset, uiFlags));
@@ -2464,7 +2464,7 @@ HB_FOFFSET hb_fsSeekLarge( HB_FHANDLE hFileHandle, HB_FOFFSET nOffset, HB_USHORT
hb_vmUnlock();
if( nOffset < 0 && nFlags == SEEK_SET )
{
llPos = ( HB_FOFFSET ) INVALID_SET_FILE_POINTER;
nPos = ( HB_FOFFSET ) INVALID_SET_FILE_POINTER;
hb_fsSetError( 25 ); /* 'Seek Error' */
}
else
@@ -2472,16 +2472,16 @@ HB_FOFFSET hb_fsSeekLarge( HB_FHANDLE hFileHandle, HB_FOFFSET nOffset, HB_USHORT
ulOffsetLow = SetFilePointer( DosToWinHandle( hFileHandle ),
ulOffsetLow, ( PLONG ) &ulOffsetHigh,
( DWORD ) nFlags );
llPos = ( ( HB_FOFFSET ) ulOffsetHigh << 32 ) | ulOffsetLow;
hb_fsSetIOError( llPos != ( HB_FOFFSET ) INVALID_SET_FILE_POINTER, 0 );
nPos = ( ( HB_FOFFSET ) ulOffsetHigh << 32 ) | ulOffsetLow;
hb_fsSetIOError( nPos != ( HB_FOFFSET ) INVALID_SET_FILE_POINTER, 0 );
}
if( llPos == ( HB_FOFFSET ) INVALID_SET_FILE_POINTER )
if( nPos == ( HB_FOFFSET ) INVALID_SET_FILE_POINTER )
{
ulOffsetHigh = 0;
ulOffsetLow = SetFilePointer( DosToWinHandle( hFileHandle ),
0, ( PLONG ) &ulOffsetHigh, SEEK_CUR );
llPos = ( ( HB_FOFFSET ) ulOffsetHigh << 32 ) | ulOffsetLow;
nPos = ( ( HB_FOFFSET ) ulOffsetHigh << 32 ) | ulOffsetLow;
}
hb_vmLock();
}
@@ -2492,26 +2492,26 @@ HB_FOFFSET hb_fsSeekLarge( HB_FHANDLE hFileHandle, HB_FOFFSET nOffset, HB_USHORT
hb_vmUnlock();
if( nOffset < 0 && nFlags == SEEK_SET )
{
llPos = ( HB_FOFFSET ) -1;
nPos = ( HB_FOFFSET ) -1;
hb_fsSetError( 25 ); /* 'Seek Error' */
}
else
{
llPos = lseek64( hFileHandle, nOffset, nFlags );
hb_fsSetIOError( llPos != ( HB_FOFFSET ) -1, 0 );
nPos = lseek64( hFileHandle, nOffset, nFlags );
hb_fsSetIOError( nPos != ( HB_FOFFSET ) -1, 0 );
}
if( llPos == ( HB_FOFFSET ) -1 )
if( nPos == ( HB_FOFFSET ) -1 )
{
llPos = lseek64( hFileHandle, 0L, SEEK_CUR );
nPos = lseek64( hFileHandle, 0L, SEEK_CUR );
}
hb_vmLock();
}
#else
llPos = ( HB_FOFFSET ) hb_fsSeek( hFileHandle, ( HB_ISIZ ) nOffset, uiFlags );
nPos = ( HB_FOFFSET ) hb_fsSeek( hFileHandle, ( HB_ISIZ ) nOffset, uiFlags );
#endif
return llPos;
return nPos;
}
HB_FOFFSET hb_fsTell( HB_FHANDLE hFileHandle )

View File

@@ -132,9 +132,9 @@ HB_FOFFSET hb_fsFSize( const char * pszFileName, HB_BOOL bUseDirEntry )
if( hFileHandle != FS_ERROR )
{
HB_FOFFSET ulPos = hb_fsSeekLarge( hFileHandle, 0, FS_END );
HB_FOFFSET nPos = hb_fsSeekLarge( hFileHandle, 0, FS_END );
hb_fsClose( hFileHandle );
return ulPos;
return nPos;
}
}
return 0;

View File

@@ -758,7 +758,6 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
LOCAL lAcceptLDClipper := .F.
LOCAL lAcceptIFlag := .F.
LOCAL lHarbourInfo := .F.
LOCAL cMakeImpLibDLL
LOCAL nHarbourPPO := 0
LOCAL cHarbourOutputExt
@@ -3946,40 +3945,7 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
/* ; */
IF hbmk[ _HBMK_lCreateImpLib ]
IF ISBLOCK( bBlk_ImpLib )
IF ! Empty( hbmk[ _HBMK_aIMPLIBSRC ] )
FOR EACH cMakeImpLibDLL IN hbmk[ _HBMK_aIMPLIBSRC ]
cMakeImpLibDLL := FN_ExtDef( cMakeImpLibDLL, ".dll" )
tmp1 := hbmk[ _HBMK_cPROGNAME ]
DEFAULT tmp1 TO FN_NameGet( cMakeImpLibDLL )
tmp := FN_CookLib( hb_FNameMerge( hbmk[ _HBMK_cPROGDIR ], tmp1 ), cLibLibPrefix, cLibLibExt )
IF hbmk[ _HBMK_lCLEAN ]
FErase( tmp )
ELSE
SWITCH Eval( bBlk_ImpLib, cMakeImpLibDLL, tmp, ArrayToList( hbmk[ _HBMK_aOPTI ] ) )
CASE _HBMK_IMPLIB_OK
hbmk_OutStd( hbmk, hb_StrFormat( I_( "Created import library: %1$s <= %2$s" ), tmp, cMakeImpLibDLL ) )
AAddNewINST( hbmk[ _HBMK_aINSTFILE ], { "", tmp }, .T. )
EXIT
CASE _HBMK_IMPLIB_FAILED
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Failed creating import library %1$s from %2$s." ), tmp, cMakeImpLibDLL ) )
EXIT
ENDSWITCH
ENDIF
NEXT
IF ! hbmk[ _HBMK_lCLEAN ]
DoInstCopy( hbmk )
ENDIF
ELSE
IF hbmk[ _HBMK_lInfo ]
hbmk_OutErr( hbmk, I_( "Warning: No import library source was specified" ) )
ENDIF
ENDIF
ELSE
hbmk_OutErr( hbmk, I_( "Error: Creating import libraries is not supported for this platform or compiler." ) )
ENDIF
DoIMPLIB( hbmk, bBlk_ImpLib, cLibLibPrefix, cLibLibExt )
ENDIF
DEFAULT hbmk[ _HBMK_nScr_Esc ] TO hbmk[ _HBMK_nCmd_Esc ]
@@ -5510,6 +5476,62 @@ FUNCTION hbmk2( aArgs, /* @ */ lPause )
RETURN hbmk[ _HBMK_nErrorLevel ]
STATIC PROCEDURE DoIMPLIB( hbmk, bBlk_ImpLib, cLibLibPrefix, cLibLibExt )
LOCAL cMakeImpLibDLL
LOCAL tmp, tmp1
LOCAL nNotFound
LOCAL aToDelete
IF ISBLOCK( bBlk_ImpLib )
IF ! Empty( hbmk[ _HBMK_aIMPLIBSRC ] )
aToDelete := {}
nNotFound := 0
FOR EACH cMakeImpLibDLL IN hbmk[ _HBMK_aIMPLIBSRC ]
cMakeImpLibDLL := FN_ExtDef( cMakeImpLibDLL, ".dll" )
tmp1 := hbmk[ _HBMK_cPROGNAME ]
DEFAULT tmp1 TO FN_NameGet( cMakeImpLibDLL )
tmp := FN_CookLib( hb_FNameMerge( hbmk[ _HBMK_cPROGDIR ], tmp1 ), cLibLibPrefix, cLibLibExt )
IF hbmk[ _HBMK_lCLEAN ]
AAddNew( aToDelete, tmp )
ELSE
SWITCH Eval( bBlk_ImpLib, cMakeImpLibDLL, tmp, ArrayToList( hbmk[ _HBMK_aOPTI ] ) )
CASE _HBMK_IMPLIB_OK
hbmk_OutStd( hbmk, hb_StrFormat( I_( "Created import library: %1$s <= %2$s" ), tmp, cMakeImpLibDLL ) )
AAddNewINST( hbmk[ _HBMK_aINSTFILE ], { "", tmp }, .T. )
EXIT
CASE _HBMK_IMPLIB_FAILED
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Error: Failed creating import library %1$s from %2$s." ), tmp, cMakeImpLibDLL ) )
EXIT
CASE _HBMK_IMPLIB_NOTFOUND
++nNotFound
EXIT
ENDSWITCH
ENDIF
NEXT
IF nNotFound == Len( hbmk[ _HBMK_aIMPLIBSRC ] )
hbmk_OutErr( hbmk, hb_StrFormat( I_( "Warning: No import library sources were found." ) ) )
ELSE
IF hbmk[ _HBMK_lCLEAN ]
AEval( aToDelete, {| tmp | FErase( tmp ) } )
ELSE
DoInstCopy( hbmk )
ENDIF
ENDIF
ELSE
IF hbmk[ _HBMK_lInfo ]
hbmk_OutErr( hbmk, I_( "Warning: No import library source was specified" ) )
ENDIF
ENDIF
ELSE
hbmk_OutErr( hbmk, I_( "Error: Creating import libraries is not supported for this platform or compiler." ) )
ENDIF
RETURN
#define _INST_cGroup 1
#define _INST_cData 2