2010-11-09 10:47 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)

* harbour/src/rdd/sdf1.c
    ! fixed bug in SDF import procedure - many thanks
      to Enrico Maria Giordano for reporting the problem
      and to Vicente Guerra for locating the reason
      BTW fix committed to xHarbour may work but it's not correct,
      I suggest to update it.

  * harbour/src/rtl/hbdyn.c
  * harbour/src/rtl/hbsocket.c
  * harbour/src/rdd/dbfnsx/dbfnsx1.c
  * harbour/src/rdd/dbfcdx/dbfcdx1.c
  * harbour/src/rdd/dbffpt/dbffpt1.c
  * harbour/contrib/hbct/bitnum.c
  * harbour/contrib/hbwin/olecore.c
    * pacified some of MSVC6 warnings reported by Andi

  * harbour/utils/Makefile
    * added internal/developers build switch
This commit is contained in:
Przemyslaw Czerpak
2010-11-09 09:47:51 +00:00
parent ec301342b7
commit 49e0b8e4e0
9 changed files with 54 additions and 31 deletions

View File

@@ -16,6 +16,26 @@
The license applies to all entries newer than 2009-04-28.
*/
2010-11-09 10:47 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/src/rdd/sdf1.c
! fixed bug in SDF import procedure - many thanks
to Enrico Maria Giordano for reporting the problem
and to Vicente Guerra for locating the reason
BTW fix committed to xHarbour may work but it's not correct,
I suggest to update it.
* harbour/src/rtl/hbdyn.c
* harbour/src/rtl/hbsocket.c
* harbour/src/rdd/dbfnsx/dbfnsx1.c
* harbour/src/rdd/dbfcdx/dbfcdx1.c
* harbour/src/rdd/dbffpt/dbffpt1.c
* harbour/contrib/hbct/bitnum.c
* harbour/contrib/hbwin/olecore.c
* pacified some of MSVC6 warnings reported by Andi
* harbour/utils/Makefile
* added internal/developers build switch
2010-11-09 10:01 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* src/rtl/hbdyn.c
! Added casts to silence msvc6 warnings.

View File

@@ -179,7 +179,7 @@ HB_FUNC( NUMROL )
{
if( hb_parl( 3 ) )
{
HB_USHORT us = ( HB_USHORT ) ( lValue & 0xff ) << ( lShift & 0x07 );
HB_USHORT us = ( HB_USHORT ) ( ( lValue & 0xff ) << ( lShift & 0x07 ) );
lValue = ( lValue & 0xff00 ) | ( us & 0xff ) | ( us >> 8 );
}

View File

@@ -912,7 +912,7 @@ void hb_oleVariantToItemEx( PHB_ITEM pItem, VARIANT* pVariant, HB_USHORT uiClass
long * plIndex = ( long * ) hb_xgrab( iDim * sizeof( long ) );
hb_oleSafeArrayToItem( pItem, pSafeArray, iDim, plIndex,
( V_VT( pVariant ) & ~( VT_ARRAY | VT_BYREF ) ),
( VARTYPE ) ( V_VT( pVariant ) & ~( VT_ARRAY | VT_BYREF ) ),
uiClass );
hb_xfree( plIndex );
}

View File

@@ -388,8 +388,8 @@ static LPCDXKEY hb_cdxKeyPutC( LPCDXKEY pKey, const char * szText, HB_USHORT uiR
/*
* compare two values using Tag conditions (len & type)
*/
static int hb_cdxValCompare( LPCDXTAG pTag, HB_BYTE * val1, HB_BYTE len1,
HB_BYTE * val2, HB_BYTE len2, int iMode )
static int hb_cdxValCompare( LPCDXTAG pTag, HB_BYTE * val1, int len1,
HB_BYTE * val2, int len2, int iMode )
{
int iLimit, iResult = 0;
@@ -851,7 +851,7 @@ static void hb_cdxTagSetScope( LPCDXTAG pTag, HB_USHORT nScope, PHB_ITEM pItem )
pScopeVal = ( hb_itemType( pItem ) == HB_IT_BLOCK ) ?
hb_vmEvalBlock( pItem ) : pItem;
if( hb_cdxItemTypeCmp( pTag->uiType ) == hb_cdxItemTypeCmp( hb_cdxItemType( pScopeVal ) ) )
if( hb_cdxItemTypeCmp( ( HB_BYTE ) pTag->uiType ) == hb_cdxItemTypeCmp( hb_cdxItemType( pScopeVal ) ) )
{
PHB_ITEM *pScope;
LPCDXKEY *pScopeKey;
@@ -1570,7 +1570,7 @@ static HB_ULONG hb_cdxPageGetKeyPage( LPCDXPAGE pPage, int iKey )
/*
* get number of duplicated keys from key in leaf index page
*/
static HB_SHORT hb_cdxPageGetKeyTrl( LPCDXPAGE pPage, HB_SHORT iKey )
static HB_BYTE hb_cdxPageGetKeyTrl( LPCDXPAGE pPage, HB_SHORT iKey )
{
#ifdef HB_CDX_DBGCODE_EXT
if( iKey < 0 || iKey >= pPage->iKeys )
@@ -1583,7 +1583,7 @@ static HB_SHORT hb_cdxPageGetKeyTrl( LPCDXPAGE pPage, HB_SHORT iKey )
else
{
HB_BYTE * ptr = &pPage->node.extNode.keyPool[ ( iKey + 1 ) * pPage->ReqByte - 2 ];
return ( HB_GET_LE_UINT16( ptr ) >> ( 16 - pPage->TCBits ) ) & pPage->TCMask;
return ( HB_BYTE ) ( HB_GET_LE_UINT16( ptr ) >> ( 16 - pPage->TCBits ) ) & pPage->TCMask;
}
}
@@ -3792,7 +3792,7 @@ static int hb_cdxPageSeekKey( LPCDXPAGE pPage, LPCDXKEY pKey, HB_ULONG ulKeyRec
n = (l + r ) >> 1;
k = hb_cdxValCompare( pPage->TagParent, pKey->val, pKey->len,
hb_cdxPageGetKeyVal( pPage, n ),
( HB_BYTE ) pPage->TagParent->uiLen, pKey->mode );
pPage->TagParent->uiLen, pKey->mode );
if( k == 0 )
{
if( ulKeyRec == CDX_MAX_REC_NUM )
@@ -3840,7 +3840,7 @@ static int hb_cdxPageSeekKey( LPCDXPAGE pPage, LPCDXKEY pKey, HB_ULONG ulKeyRec
{
k = hb_cdxValCompare( pPage->TagParent, pKey->val, pKey->len,
hb_cdxPageGetKeyVal( pPage, pPage->iCurKey ),
( HB_BYTE ) pPage->TagParent->uiLen, pKey->mode );
pPage->TagParent->uiLen, pKey->mode );
if( k == 0 && ulKeyRec != CDX_MAX_REC_NUM &&
ulKeyRec != CDX_IGNORE_REC_NUM )
{
@@ -3864,7 +3864,7 @@ static int hb_cdxPageSeekKey( LPCDXPAGE pPage, LPCDXKEY pKey, HB_ULONG ulKeyRec
else
k = hb_cdxValCompare( pPage->TagParent, pKey->val, pKey->len,
hb_cdxPageGetKeyVal( pPage, pPage->iCurKey ),
( HB_BYTE ) pPage->TagParent->uiLen, pKey->mode );
pPage->TagParent->uiLen, pKey->mode );
}
}
else if( k > 0 && fLeaf )

View File

@@ -3730,7 +3730,7 @@ static HB_ERRCODE hb_fptPutVarField( FPTAREAP pArea, HB_USHORT uiIndex, PHB_ITEM
if( hb_fptCountSMTDataLength( pArea, &fOffset ) != HB_SUCCESS )
ulOldSize = 0;
else
ulOldSize = fOffset - FPT_BLOCK_OFFSET( ulOldBlock );
ulOldSize = ( HB_ULONG ) ( fOffset - FPT_BLOCK_OFFSET( ulOldBlock ) );
}
}
}
@@ -4494,7 +4494,7 @@ static HB_ERRCODE hb_fptDoPackRec( FPTAREAP pArea )
HB_ERRCODE errCode = HB_SUCCESS;
HB_ULONG ulBlock, ulSize, ulType;
HB_USHORT uiField;
HB_FOFFSET pos, from;
HB_FOFFSET pos, from, size;
HB_TRACE(HB_TR_DEBUG, ("hb_fptDoPackRec(%p)", pArea));
@@ -4558,7 +4558,7 @@ static HB_ERRCODE hb_fptDoPackRec( FPTAREAP pArea )
ulBlock = HB_GET_LE_UINT32( pFieldBuf + pField->uiLen - 6 );
ulType = HB_GET_LE_UINT16( pFieldBuf + pField->uiLen - 2 );
ulSize = 0;
size = 0;
switch( ulType )
{
@@ -4569,23 +4569,23 @@ static HB_ERRCODE hb_fptDoPackRec( FPTAREAP pArea )
FPT_BLOCK_OFFSET( ulBlock ) ) != 4 )
errCode = EDBF_READ;
else
ulSize = HB_GET_LE_UINT32( buffer ) + 4;
size = HB_GET_LE_UINT32( buffer ) + 4;
break;
case HB_VF_ARRAY:
from = FPT_BLOCK_OFFSET( ulBlock );
errCode = hb_fptCountSMTDataLength( pArea, &from );
ulSize = from - FPT_BLOCK_OFFSET( ulBlock );
size = from - FPT_BLOCK_OFFSET( ulBlock );
break;
case HB_VF_DNUM:
if( pField->uiLen <= 12 )
ulSize = 11;
size = 11;
break;
default:
if( ulType <= HB_VF_CHAR && ( pField->uiLen - 2 ) < ( int ) ulType )
ulSize = ulType - ( pField->uiLen - 6 );
size = ulType - ( pField->uiLen - 6 );
break;
}
if( errCode == HB_SUCCESS && ulSize )
if( errCode == HB_SUCCESS && size )
{
/* Buffer is hot? */
if( !pArea->fRecordChanged )
@@ -4599,7 +4599,7 @@ static HB_ERRCODE hb_fptDoPackRec( FPTAREAP pArea )
pos = ( HB_FOFFSET ) ulBlock *
( HB_FOFFSET ) pArea->ulNewBlockSize;
errCode = hb_fptCopyToFile( pArea->pMemoFile, from,
pArea->pMemoTmpFile, pos, ulSize );
pArea->pMemoTmpFile, pos, size );
if( errCode == HB_SUCCESS )
HB_PUT_LE_UINT32( pFieldBuf + pField->uiLen - 6, ulBlock );
}
@@ -4640,7 +4640,7 @@ static HB_ERRCODE hb_fptDoPack( FPTAREAP pArea, HB_USHORT uiBlockSize,
pArea->pMemoTmpFile = hb_fileCreateTemp( NULL, NULL, FC_NORMAL, szFile );
if( pArea->pMemoTmpFile )
{
HB_USHORT ulMemoBlockSize = pArea->ulMemoBlockSize;
HB_ULONG ulMemoBlockSize = pArea->ulMemoBlockSize;
PHB_FILE pFile = pArea->pMemoFile;
pArea->ulMemoBlockSize = pArea->ulNewBlockSize;

View File

@@ -251,7 +251,7 @@ static HB_USHORT hb_nsxLeafGetKey( LPTAGINFO pTag, LPPAGEINFO pPage, HB_USHORT u
ucSize = ptr[ uiOffset++ ];
if( ucSize != ucRecLen + 1 ) /* key value is not fully duplicated */
{
HB_UCHAR len = pTag->KeyLength;
HB_UCHAR len = ( HB_UCHAR ) pTag->KeyLength;
/* ucSize = 0 is a special case when RecLen is 4 and KeySize is 250
* in such case ucSize - ( ucRecLen + 2 ) gives 250 = NSX_MAXKEYLEN
@@ -4191,7 +4191,7 @@ static HB_BOOL hb_nsxOrdKeyGoto( LPTAGINFO pTag, HB_ULONG ulKeyNo )
}
else
{
pTag->stack[ iLevel ].ikey -= ulKeyNo;
pTag->stack[ iLevel ].ikey -= ( HB_SHORT ) ulKeyNo;
ulKeyNo = 0;
}
}
@@ -4247,7 +4247,7 @@ static HB_BOOL hb_nsxOrdKeyGoto( LPTAGINFO pTag, HB_ULONG ulKeyNo )
}
else
{
pTag->stack[ iLevel ].ikey += ulKeyNo;
pTag->stack[ iLevel ].ikey += ( HB_SHORT ) ulKeyNo;
ulKeyNo = 0;
}
}

View File

@@ -121,11 +121,12 @@ static HB_ERRCODE hb_sdfReadRecord( SDFAREAP pArea )
pArea->area.fEof = HB_FALSE;
pArea->fPositioned = HB_TRUE;
uiEolPos = ( HB_USHORT ) hb_strAt( pArea->szEol, pArea->uiEolLen,
( char * ) pArea->pRecord, uiRead );
( const char * ) pArea->pRecord,
uiRead );
if( uiEolPos )
{
--uiEolPos;
if( uiRead == pArea->uiRecordLen + pArea->uiEolLen )
if( uiRead < uiToRead && uiRead == uiEolPos + pArea->uiEolLen )
pArea->nNextOffset = ( HB_FOFFSET ) -1;
else
pArea->nNextOffset = pArea->nRecordOffset + uiEolPos + pArea->uiEolLen;
@@ -176,11 +177,12 @@ static HB_ERRCODE hb_sdfNextRecord( SDFAREAP pArea )
--uiRead;
uiEolPos = ( HB_USHORT ) hb_strAt( pArea->szEol, pArea->uiEolLen,
( char * ) pArea->pRecord, uiRead );
( const char * ) pArea->pRecord,
uiRead );
if( uiEolPos )
{
--uiEolPos;
if( uiRead == pArea->uiRecordLen + pArea->uiEolLen )
if( uiRead < uiToRead && uiRead == uiEolPos + pArea->uiEolLen )
pArea->nNextOffset = ( HB_FOFFSET ) -1;
else
pArea->nNextOffset = ulOffset + uiEolPos + pArea->uiEolLen;

View File

@@ -1436,7 +1436,7 @@ static int hb_socketSelectRD( HB_SOCKET sd, HB_MAXINT timeout )
if( timeout >= 0 )
{
tv.tv_sec = ( long ) ( timeout / 1000 );
tv.tv_usec = ( timeout % 1000 ) * 1000;
tv.tv_usec = ( long ) ( timeout % 1000 ) * 1000;
ptv = &tv;
}
else
@@ -1484,7 +1484,7 @@ static int hb_socketSelectWR( HB_SOCKET sd, HB_MAXINT timeout )
if( timeout >= 0 )
{
tv.tv_sec = ( long ) ( timeout / 1000 );
tv.tv_usec = ( timeout % 1000 ) * 1000;
tv.tv_usec = ( long ) ( timeout % 1000 ) * 1000;
ptv = &tv;
}
else
@@ -1541,7 +1541,7 @@ static int hb_socketSelectWRE( HB_SOCKET sd, HB_MAXINT timeout )
if( timeout >= 0 )
{
tv.tv_sec = ( long ) ( timeout / 1000 );
tv.tv_usec = ( timeout % 1000 ) * 1000;
tv.tv_usec = ( long ) ( timeout % 1000 ) * 1000;
ptv = &tv;
}
else
@@ -2628,7 +2628,7 @@ int hb_socketSelect( PHB_ITEM pArrayRD, HB_BOOL fSetRD,
if( timeout >= 0 )
{
tv.tv_sec = ( long ) ( timeout / 1000 );
tv.tv_usec = ( timeout % 1000 ) * 1000;
tv.tv_usec = ( long ) ( timeout % 1000 ) * 1000;
ptv = &tv;
}
else

View File

@@ -16,6 +16,7 @@ ifneq ($(HB_BUILD_PARTS),compiler)
hbi18n \
hbtest \
hbformat \
$(__HB_UTIL_ADDONS)
endif