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:
@@ -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.
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
|
||||
@@ -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 );
|
||||
}
|
||||
|
||||
@@ -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( ... )
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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 )
|
||||
|
||||
@@ -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;
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in New Issue
Block a user