2002-01-16 17:21 UTC-0300 Horacio Roldan <harbour_ar@yahoo.com.ar>

* source/rdd/dbfcdx1.c
     * fixed some simple warnings by bcc32 (with -w)
     * fixed 3 bugs with index not updating the tree
This commit is contained in:
Horacio Dario Roldan Kasimatis
2002-01-16 20:21:44 +00:00
parent 5b4aeab55c
commit d9a866612a

View File

@@ -211,7 +211,7 @@ static void hb_cdxDNtoSort( double dValue, BYTE * szBuffer )
if( dValue < 0 )
{
for( i = 7 ; i >= 0 ; i--, pTemp++)
szBuffer[ i ] = ( *pTemp ) ^ 0xFF;
szBuffer[ i ] = ( *pTemp ) ^ (BYTE) 0xFF;
}
else
{
@@ -254,7 +254,7 @@ static double hb_cdxSorttoND( BYTE * szBuffer, USHORT uiLen )
if( i >= uiLen )
( *pTemp ) = 0;
else
( *pTemp ) = szBuffer[ i ] ^ 0xFF;
( *pTemp ) = szBuffer[ i ] ^ (BYTE) 0xFF;
}
}
@@ -318,7 +318,7 @@ static void hb_cdxPutMemoBlock( CDXAREAP pArea, USHORT uiIndex, ULONG ulBlock )
{
if( ulBlock > 0 )
{
pArea->pRecord[ pArea->pFieldOffset[ uiIndex ] + iCount ] = ( BYTE )( ulBlock % 10 ) + '0';
pArea->pRecord[ pArea->pFieldOffset[ uiIndex ] + iCount ] = ( BYTE ) (( ulBlock % 10 ) + '0');
ulBlock /= 10;
}
else
@@ -576,14 +576,14 @@ static void hb_cdxWriteMemo( CDXAREAP pArea, ULONG ulBlock, PHB_ITEM pItem, ULON
HB_TRACE(HB_TR_DEBUG, ("hb_cdxWriteMemo(%p, %lu, %p, %lu, %p, %hu)", pArea, ulBlock,
pItem, ulLen, ulStoredBlock, uiType));
uiBloksRequired = ( USHORT ) ( ulLen + sizeof( MEMOBLOCK ) + pArea->uiMemoBlockSize - 1 ) /
pArea->uiMemoBlockSize;
uiBloksRequired = ( USHORT ) (( ulLen + sizeof( MEMOBLOCK ) + pArea->uiMemoBlockSize - 1 ) /
pArea->uiMemoBlockSize);
if( ulBlock > 0 )
{
hb_fsSeek( pArea->hMemoFile, ulBlock * pArea->uiMemoBlockSize, FS_SET );
hb_fsRead( pArea->hMemoFile, ( BYTE * ) &mbBlock, sizeof( MEMOBLOCK ) );
uiBlocksUsed = ( USHORT ) ( hb_cdxSwapBytes( mbBlock.ulSize ) + sizeof( MEMOBLOCK ) +
pArea->uiMemoBlockSize - 1 ) / pArea->uiMemoBlockSize;
uiBlocksUsed = ( USHORT ) (( hb_cdxSwapBytes( mbBlock.ulSize ) + sizeof( MEMOBLOCK ) +
pArea->uiMemoBlockSize - 1 ) / pArea->uiMemoBlockSize);
}
bWriteBlocks = FALSE;
@@ -648,8 +648,8 @@ static BOOL hb_cdxPutMemo( CDXAREAP pArea, USHORT uiIndex, PHB_ITEM pItem )
{
hb_fsSeek( pArea->hMemoFile, ulBlock * pArea->uiMemoBlockSize, FS_SET );
hb_fsRead( pArea->hMemoFile, ( BYTE * ) &mbBlock, sizeof( MEMOBLOCK ) );
uiBlocksUsed = ( USHORT ) ( hb_cdxSwapBytes( mbBlock.ulSize ) +
pArea->uiMemoBlockSize - 1 ) / pArea->uiMemoBlockSize;
uiBlocksUsed = ( USHORT ) (( hb_cdxSwapBytes( mbBlock.ulSize ) +
pArea->uiMemoBlockSize - 1 ) / pArea->uiMemoBlockSize);
hb_cdxAddFreeBlocks( pArea, ulBlock, uiBlocksUsed );
}
ulBlock = 0;
@@ -752,7 +752,7 @@ ERRCODE hb_cdxPutValue( CDXAREAP pArea, USHORT uiIndex, PHB_ITEM pItem )
}
/* Update deleted flag */
pArea->pRecord[ 0 ] = pArea->fDeleted ? '*' : ' ';
pArea->pRecord[ 0 ] = (BYTE) (pArea->fDeleted ? '*' : ' ');
return SUCCESS;
}
}
@@ -880,8 +880,8 @@ ERRCODE hb_cdxOpen( CDXAREAP pArea, LPDBOPENINFO pOpenInfo )
hb_itemRelease( pExtInfo.itmResult );
hb_xfree( pFileName );
uiFlags = pArea->fReadonly ? FO_READ : FO_READWRITE;
uiFlags |= pArea->fShared ? FO_DENYNONE : FO_EXCLUSIVE;
uiFlags = (USHORT) (pArea->fReadonly ? FO_READ : FO_READWRITE);
uiFlags |= (USHORT) (pArea->fShared ? FO_DENYNONE : FO_EXCLUSIVE);
hFile = hb_spOpen( ( BYTE * ) szFileName, uiFlags );
if( hFile != FS_ERROR )
@@ -1200,8 +1200,8 @@ ERRCODE hb_cdxOpenMemFile( CDXAREAP pArea, LPDBOPENINFO pOpenInfo )
HB_TRACE(HB_TR_DEBUG, ("hb_cdxOpenMemFile(%p, %p)", pArea, pOpenInfo));
uiFlags = pOpenInfo->fReadonly ? FO_READ : FO_READWRITE;
uiFlags |= pOpenInfo->fShared ? FO_DENYNONE : FO_EXCLUSIVE;
uiFlags = (USHORT) (pOpenInfo->fReadonly ? FO_READ : FO_READWRITE);
uiFlags |= (USHORT) (pOpenInfo->fShared ? FO_DENYNONE : FO_EXCLUSIVE);
pError = NULL;
/* Try open */
@@ -1301,7 +1301,7 @@ ERRCODE hb_cdxWriteDBHeader( CDXAREAP pArea )
HB_TRACE(HB_TR_DEBUG, ("hb_cdxWriteDBHeader(%p)", pArea));
memset( &dbfHeader, 0, sizeof( DBFHEADER ) );
dbfHeader.bVersion = pArea->fHasMemo ? 0xF5 : 0x03;
dbfHeader.bVersion = (BYTE) (pArea->fHasMemo ? 0xF5 : 0x03);
hb_dateToday( &lYear, &lMonth, &lDay );
dbfHeader.bYear = ( BYTE ) ( lYear - 1900 );
dbfHeader.bMonth = ( BYTE ) lMonth;
@@ -1394,7 +1394,7 @@ static int hb_cdxKeyCompare( LPKEYINFO pKey1, LPKEYINFO pKey2, USHORT * EndPos,
*/
iResult = ( (unsigned char) pKey1->Value[ * EndPos ]) -
( (unsigned char) pKey2->Value[ * EndPos ]);
* EndPos += 1;
(* EndPos)++; /* EndPos += 1; */
} while( iResult == 0 && * EndPos < iLimit );
}
else
@@ -1403,13 +1403,13 @@ static int hb_cdxKeyCompare( LPKEYINFO pKey1, LPKEYINFO pKey2, USHORT * EndPos,
{
iResult = ( (unsigned char) pKey1->Value[ * EndPos ]) -
( (unsigned char) pKey2->Value[ * EndPos ]);
* EndPos += 1;
(* EndPos)++; /* * EndPos += 1; */
} while( iResult == 0 && * EndPos < iLimit );
}
if( iResult == 0 )
{
* EndPos += 1;
(* EndPos)++; /* * EndPos += 1; */
iResult = pKey1->length - pKey2->length;
}
if( (iResult < 0) && ((ULONG)* EndPos > pKey1->length) && !Exact )
@@ -1491,7 +1491,7 @@ static LPKEYINFO hb_cdxKeyPutItem( LPKEYINFO pKey, PHB_ITEM pItem )
pKey->Value = (char *) hb_xgrab( 2 );
pKey->fString = TRUE;
pKey->Value[0] = ( hb_itemGetL( pItem ) ? 'T' : 'F' );
pKey->Value[0] = (char) ( hb_itemGetL( pItem ) ? 'T' : 'F' );
pKey->Value[1] = 0;
break;
@@ -1807,7 +1807,7 @@ static void hb_cdxTagDoIndex( LPCDXTAG pTag )
break;
case HB_IT_LOGICAL:
cTemp[0] = (hb_itemGetL( pItem ) ? 'T' : 'F');
cTemp[0] = (BYTE) (hb_itemGetL( pItem ) ? 'T' : 'F');
hb_cdxSortInsertWord( pSort, ulRecNo, (char *) cTemp, 1 );
break;
@@ -2837,6 +2837,7 @@ static void hb_cdxPageInsertKey( LPPAGEINFO pPage, LPKEYINFO pKey, BOOL bAddAfte
{
USHORT uiCount;
LPKEYINFO pNewKey, pLastKey;
LONG TempTag;
if( pPage->Child != NULL )
hb_cdxPageInsertKey( pPage->Child, pKey, bAddAfter );
@@ -2851,7 +2852,13 @@ static void hb_cdxPageInsertKey( LPPAGEINFO pPage, LPKEYINFO pKey, BOOL bAddAfte
if( pPage->CurKey < 0 )
pPage->CurKey = 0;
if( pPage->Owner != NULL && pPage->CurKey >= pPage->uiKeys )
printf( "hb_cdxPageInsertKey()" );
{
/*printf( "hb_cdxPageInsertKey()" );*/
TempTag = pNewKey->Tag;
pNewKey->Tag = pPage->Page;
hb_cdxPageReplaceNodeKey( pPage->Owner, pNewKey );
pNewKey->Tag = TempTag;
}
if( pPage->pKeys == NULL )
pPage->pKeys = pNewKey;
else
@@ -3120,6 +3127,7 @@ static void hb_cdxPageDeleteKey( LPPAGEINFO pPage )
pPrevKey->pNext = p->pNext;
}
pPage->uiKeys--;
pPage->Changed = TRUE;
hb_cdxKeyFree( p );
if( pPage->CurKey >= pPage->uiKeys )
pPage->CurKey = pPage->uiKeys - 1;
@@ -3157,6 +3165,7 @@ static void hb_cdxPageReplaceNodeKey( LPPAGEINFO pPage, LPKEYINFO pKey )
pPrevKey = hb_cdxPageGetKey( pPage, pPage->CurKey - 1 );
pPrevKey->pNext = p;
}
pPage->Changed = TRUE;
if( pPage->Owner != NULL && pPage->CurKey >= pPage->uiKeys - 1 )
{
TempTag = p->Tag;
@@ -4321,8 +4330,8 @@ ERRCODE hb_cdxOrderListAdd( CDXAREAP pAreaCdx, LPDBORDERINFO pOrderInfo )
hb_xfree( pFileName );
}
uiFlags = pAreaCdx->fReadonly ? FO_READ : FO_READWRITE;
uiFlags |= pAreaCdx->fShared ? FO_DENYNONE : FO_EXCLUSIVE;
uiFlags = (USHORT) ( pAreaCdx->fReadonly ? FO_READ : FO_READWRITE );
uiFlags |= (USHORT) ( pAreaCdx->fShared ? FO_DENYNONE : FO_EXCLUSIVE );
do
{
@@ -4548,19 +4557,19 @@ ERRCODE hb_cdxSkipRaw( CDXAREAP pArea, LONG lToSkip )
{
if( pArea->fBof )
SELF_GOTOP( ( AREAP ) pArea );
if( lToSkip == 0 )
{
SUPER_SKIPRAW( ( AREAP ) pArea, 0 );
}
else if( lToSkip > 0 )
{
if( !pArea->fEof )
{
while( !pTag->TagEOF && lToSkip-- > 0 )
hb_cdxTagKeyRead( pTag, NEXT_RECORD );
if( !pTag->TagEOF )
SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->Tag );
else
@@ -4583,7 +4592,7 @@ ERRCODE hb_cdxSkipRaw( CDXAREAP pArea, LONG lToSkip )
pTag->TagBOF = FALSE;
while( !pTag->TagBOF && lToSkip++ < 0 )
hb_cdxTagKeyRead( pTag, PREV_RECORD );
if( !pTag->TagBOF )
SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->Tag );
else
@@ -4628,7 +4637,7 @@ ERRCODE hb_cdxSeek( CDXAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL bFindLas
{
LONG lRecno;
LPKEYINFO pKey2;
pKey2 = hb_cdxKeyNew();
hb_cdxKeyPutItem( pKey2, pKey );
if( bFindLast )
@@ -4636,7 +4645,7 @@ ERRCODE hb_cdxSeek( CDXAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL bFindLas
else
pKey2->Tag = CDX_IGNORE_REC_NUM;
pKey2->Xtra = 0;
lRecno = hb_cdxTagKeyFind( pTag, pKey2 );
pArea->fEof = pTag->TagEOF;
pArea->fBof = pTag->TagBOF;
@@ -4899,7 +4908,7 @@ ERRCODE hb_cdxGoCold( CDXAREAP pArea )
hb_stackPop();
}
pKey->Tag = pArea->ulRecNo;
if( pArea->fAppend )
{
if( bForOk )
@@ -4924,14 +4933,14 @@ ERRCODE hb_cdxGoCold( CDXAREAP pArea )
hb_cdxTagKeyAdd( pTag, pKey );
pTag->RootPage->Changed = TRUE;
if( uiTag == pArea->lpIndexes->uiTag)
hb_cdxTagTagStore( pTag );
else
hb_cdxTagTagClose( pTag );
}
}
hb_cdxKeyFree( pKey );
if( pTag->HotKey )
@@ -4967,4 +4976,4 @@ extern ERRCODE hb_cdxPack( CDXAREAP pArea )
}
else
return FAILURE;
}
}