diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 097c13d008..48ceeaa2c9 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -17,6 +17,11 @@ past entries belonging to author(s): Viktor Szakats. */ +2009-10-01 13:22 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl) + * harbour/include/hbrdddbf.h + * harbour/source/rdd/dbf1.c + ! resolve pending relations before clearing WA filter + 2009-10-01 11:53 UTC+0200 Viktor Szakats (harbour.01 syenar.hu) * config/global.mk * utils/hbmk2/hbmk2.prg diff --git a/harbour/include/hbrdddbf.h b/harbour/include/hbrdddbf.h index fd4a4fcf73..821fbcea44 100644 --- a/harbour/include/hbrdddbf.h +++ b/harbour/include/hbrdddbf.h @@ -311,7 +311,7 @@ static HB_ERRCODE hb_dbfForceRel( DBFAREAP pArea ); #define hb_dbfOrderCreate NULL #define hb_dbfOrderDestroy NULL #define hb_dbfOrderInfo NULL -#define hb_dbfClearFilter NULL +static HB_ERRCODE hb_dbfClearFilter( DBFAREAP pArea ); #define hb_dbfClearLocate NULL #define hb_dbfClearScope NULL #define hb_dbfCountScope NULL diff --git a/harbour/source/rdd/dbf1.c b/harbour/source/rdd/dbf1.c index d112f38db2..eea429a96d 100644 --- a/harbour/source/rdd/dbf1.c +++ b/harbour/source/rdd/dbf1.c @@ -4810,6 +4810,22 @@ static HB_ERRCODE hb_dbfForceRel( DBFAREAP pArea ) return HB_SUCCESS; } +/* + * Clear the filter condition for the specified WorkArea. + */ +static HB_ERRCODE hb_dbfClearFilter( DBFAREAP pArea ) +{ + HB_TRACE(HB_TR_DEBUG, ("hb_dbfClearFilter(%p)", pArea)); + + if( pArea->lpdbPendingRel ) + { + if( SELF_FORCEREL( ( AREAP ) pArea ) != HB_SUCCESS ) + return HB_FAILURE; + } + + return SUPER_CLEARFILTER( ( AREAP ) pArea ); +} + /* * Set the filter condition for the specified WorkArea. */