2001-11-23 17:57 GMT-3 Horacio Roldan <harbour_ar@yahoo.com.ar>

* source/rdd/dbfcdx/dbfcdx1.c
     ! fixed gpf with autoopen
     ! fixed dbSeek for padded strings
This commit is contained in:
Horacio Dario Roldan Kasimatis
2001-11-23 20:58:42 +00:00
parent 14a357ee98
commit 02547acfae
2 changed files with 27 additions and 4 deletions

View File

@@ -1,3 +1,8 @@
2001-11-23 17:57 GMT-3 Horacio Roldan <harbour_ar@yahoo.com.ar>
* source/rdd/dbfcdx/dbfcdx1.c
! fixed gpf with autoopen
! fixed dbSeek for padded strings
2001-11-22 23:55 UTC-0800 Brian Hays <bhays@abacuslaw.com>
* contrib/rdd_ads/ads1.c

View File

@@ -847,11 +847,11 @@ ERRCODE hb_cdxOpen( CDXAREAP pArea, LPDBOPENINFO pOpenInfo )
/* If SET_AUTOPEN open index */
if( pArea->fHasTags && hb_set.HB_SET_AUTOPEN )
{
/* printf("TODO: hb_cdxOpen()\n"); */
pFileName = hb_fsFNameSplit( pArea->szDataFileName );
szFileName = ( char * ) hb_xgrab( _POSIX_PATH_MAX + 3 );
szFileName[ 0 ] = '\0';
strcpy ( szFileName, pFileName->szPath );
if ( pFileName->szPath )
strcpy ( szFileName, pFileName->szPath );
strncat( szFileName, pFileName->szName, _POSIX_PATH_MAX -
strlen( szFileName ) );
@@ -862,8 +862,6 @@ 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;
hFile = hb_fsOpen( ( BYTE * ) szFileName, uiFlags );
@@ -4580,6 +4578,26 @@ ERRCODE hb_cdxSeek( CDXAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL bFindLas
pArea->fBof = pTag->TagBOF;
hb_cdxKeyFree( pKey2 );
if ( lRecno > 0 )
{
switch ( pTag->uiType )
{
case 'C':
/* fix for key trimming*/
if ( (USHORT) pKey->item.asString.length > pTag->uiLen)
{
lRecno = 0;
pTag->TagEOF = 1;
}
else if ( strncmp( pKey->item.asString.value, pTag->CurKeyInfo->Value,
(pKey->item.asString.length < pTag->CurKeyInfo->length ?
pKey->item.asString.length : pTag->CurKeyInfo->length) ) != 0)
{
lRecno = 0;
}
break;
}
}
if ( lRecno > 0 )
{
retvalue = SELF_GOTO( ( AREAP ) pArea, pTag->CurKeyInfo->Tag );
pArea->fFound = TRUE;