2009-12-07 11:40 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)

* harbour/contrib/rddads/ads1.c
    * renamed RDD from ADT to ADSADT
    + added public functions ADSADT, ADSNTX, ADSCDX, ADSVFP to be able 
      do a REQUEST RDD using RDD name from .prg code
  * harbour/contrib/rddads/adsx.c
    + added ADSNTXX, ADSCDXX, ADSADTX RDDs
This commit is contained in:
Mindaugas Kavaliauskas
2009-12-07 09:37:16 +00:00
parent 935fdfc158
commit dff90ef1d7
3 changed files with 88 additions and 30 deletions

View File

@@ -17,6 +17,14 @@
past entries belonging to author(s): Viktor Szakats.
*/
2009-12-07 11:40 UTC+0200 Mindaugas Kavaliauskas (dbtopas/at/dbtopas.lt)
* harbour/contrib/rddads/ads1.c
* renamed RDD from ADT to ADSADT
+ added public functions ADSADT, ADSNTX, ADSCDX, ADSVFP to be able
do a REQUEST RDD using RDD name from .prg code
* harbour/contrib/rddads/adsx.c
+ added ADSNTXX, ADSCDXX, ADSADTX RDDs
2009-12-07 10:14 UTC+0100 Viktor Szakats (harbour.01 syenar.hu)
* external/libpng/pngerror.c
* external/libpng/pngrio.c

View File

@@ -72,7 +72,7 @@ static int s_iSetListenerHandle = 0;
static USHORT s_uiRddCount = 0;
static USHORT s_uiRddIdADS = ( USHORT ) -1;
static USHORT s_uiRddIdADT = ( USHORT ) -1;
static USHORT s_uiRddIdADSADT = ( USHORT ) -1;
static USHORT s_uiRddIdADSNTX = ( USHORT ) -1;
static USHORT s_uiRddIdADSCDX = ( USHORT ) -1;
#if ADS_LIB_VERSION >= 900
@@ -270,7 +270,7 @@ static int adsGetFileType( USHORT uiRddID )
return ADS_CDX;
else if( uiRddID == s_uiRddIdADSNTX )
return ADS_NTX;
else if( uiRddID == s_uiRddIdADT )
else if( uiRddID == s_uiRddIdADSADT )
return ADS_ADT;
#if ADS_LIB_VERSION >= 900
else if( uiRddID == s_uiRddIdADSVFP )
@@ -290,13 +290,10 @@ static const char * adsMemoExt( int iFileType )
switch( iFileType )
{
case ADS_ADT: return ".adm";
case ADS_CDX: return ".fpt";
#if ADS_LIB_VERSION >= 900
case ADS_VFP: return ".fpt";
#endif
case ADS_NTX: return ".dbt";
}
return ".dbt";
return ".fpt";
}
static const char * adsIndexExt( int iFileType )
@@ -304,13 +301,10 @@ static const char * adsIndexExt( int iFileType )
switch( iFileType )
{
case ADS_ADT: return ".adi";
case ADS_CDX: return ".cdx";
#if ADS_LIB_VERSION >= 900
case ADS_VFP: return ".cdx";
#endif
case ADS_NTX: return ".ntx";
}
return ".ntx";
return ".cdx";
}
static ADSHANDLE hb_adsFindBag( ADSAREAP pArea, const char * szBagName )
@@ -3200,7 +3194,7 @@ static HB_ERRCODE adsNewArea( ADSAREAP pArea )
errCode = SUPER_NEW( ( AREAP ) pArea );
if( errCode == HB_SUCCESS )
{
if( pArea->area.rddID == s_uiRddIdADT )
if( pArea->area.rddID == s_uiRddIdADSADT )
{
pArea->iFileType = ADS_ADT;
pArea->area.uiMaxFieldNameLength = ADS_MAX_FIELD_NAME;
@@ -3713,7 +3707,7 @@ static HB_ERRCODE adsSetRel( ADSAREAP pArea, LPDBRELINFO lpdbRelations )
szExp = ( UNSIGNED8 * ) hb_itemGetCPtr( lpdbRelations->abKey );
rddID = lpdbRelations->lpaChild->rddID;
if( *szExp && ( rddID == s_uiRddIdADS ||
rddID == s_uiRddIdADT ||
rddID == s_uiRddIdADSADT ||
#if ADS_LIB_VERSION >= 900
rddID == s_uiRddIdADSVFP ||
#endif
@@ -5188,11 +5182,11 @@ HB_FUNC_STATIC( ADS_GETFUNCTABLE )
adsRegisterRDD( &s_uiRddIdADS );
}
HB_FUNC_STATIC( ADT_GETFUNCTABLE )
HB_FUNC_STATIC( ADSADT_GETFUNCTABLE )
{
HB_TRACE(HB_TR_DEBUG, ("ADT_GETFUNCTABLE()"));
HB_TRACE(HB_TR_DEBUG, ("ADSADT_GETFUNCTABLE()"));
adsRegisterRDD( &s_uiRddIdADT );
adsRegisterRDD( &s_uiRddIdADSADT );
}
HB_FUNC_STATIC( ADSNTX_GETFUNCTABLE )
@@ -5222,12 +5216,22 @@ HB_FUNC_STATIC( ADSVFP_GETFUNCTABLE )
HB_FUNC( ADS ) { ; }
HB_FUNC( ADSADT ) { ; }
HB_FUNC( ADSNTX ) { ; }
HB_FUNC( ADSCDX ) { ; }
#if ADS_LIB_VERSION >= 900
HB_FUNC( ADSVFP ) { ; }
#endif
static void hb_adsRddInit( void * cargo )
{
HB_SYMBOL_UNUSED( cargo );
if( hb_rddRegister( "ADS", RDT_FULL ) > 1 ||
hb_rddRegister( "ADT", RDT_FULL ) > 1 ||
hb_rddRegister( "ADSADT", RDT_FULL ) > 1 ||
#if ADS_LIB_VERSION >= 900
hb_rddRegister( "ADSVFP", RDT_FULL ) > 1 ||
#endif
@@ -5241,11 +5245,15 @@ static void hb_adsRddInit( void * cargo )
HB_INIT_SYMBOLS_BEGIN( ads1__InitSymbols )
{ "ADS", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADS )}, NULL },
{ "ADS_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADS_GETFUNCTABLE )}, NULL },
{ "ADT_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADT_GETFUNCTABLE )}, NULL },
{ "ADSADT", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSADT )}, NULL },
{ "ADSADT_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSADT_GETFUNCTABLE )}, NULL },
#if ADS_LIB_VERSION >= 900
{ "ADSVFP", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSVFP )}, NULL },
{ "ADSVFP_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSVFP_GETFUNCTABLE )}, NULL },
#endif
{ "ADSNTX", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSNTX )}, NULL },
{ "ADSNTX_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSNTX_GETFUNCTABLE )}, NULL },
{ "ADSCDX", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSCDX )}, NULL },
{ "ADSCDX_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSCDX_GETFUNCTABLE )}, NULL }
HB_INIT_SYMBOLS_END( ads1__InitSymbols )
@@ -5275,7 +5283,7 @@ ADSAREAP hb_adsGetWorkAreaPointer( void )
USHORT rddID = pArea->area.rddID;
if( rddID == s_uiRddIdADS ||
rddID == s_uiRddIdADT ||
rddID == s_uiRddIdADSADT ||
#if ADS_LIB_VERSION >= 900
rddID == s_uiRddIdADSVFP ||
#endif

View File

@@ -119,7 +119,10 @@ typedef struct _ADSXAREA_
static USHORT s_uiRddIdADSX = ( USHORT ) -1;
static USHORT s_uiRddIdADSX = ( USHORT ) -1;
static USHORT s_uiRddIdADSNTXX = ( USHORT ) -1;
static USHORT s_uiRddIdADSCDXX = ( USHORT ) -1;
static USHORT s_uiRddIdADSADTX = ( USHORT ) -1;
static RDDFUNCS adsxSuper;
@@ -1405,7 +1408,7 @@ static RDDFUNCS adsxTable = { NULL,
NULL };
static void adsxRegisterRDD( USHORT * pusRddId )
static void adsxRegisterRDD( USHORT * pusRddId, const char * szRddName )
{
RDDFUNCS * pTable;
USHORT * uiCount, uiRddId;
@@ -1419,7 +1422,7 @@ static void adsxRegisterRDD( USHORT * pusRddId )
{
HB_ERRCODE errCode;
errCode = hb_rddInherit( pTable, &adsxTable, &adsxSuper, "ADS" );
errCode = hb_rddInherit( pTable, &adsxTable, &adsxSuper, szRddName );
if( errCode == HB_SUCCESS )
{
*pusRddId = uiRddId;
@@ -1435,35 +1438,74 @@ static void adsxRegisterRDD( USHORT * pusRddId )
HB_FUNC( ADSX_GETFUNCTABLE )
{
adsxRegisterRDD( &s_uiRddIdADSX );
adsxRegisterRDD( &s_uiRddIdADSX, "ADS" );
}
HB_FUNC( ADSNTXX_GETFUNCTABLE )
{
adsxRegisterRDD( &s_uiRddIdADSNTXX, "ADSNTX" );
}
HB_FUNC( ADSCDXX_GETFUNCTABLE )
{
adsxRegisterRDD( &s_uiRddIdADSCDXX, "ADSCDX" );
}
HB_FUNC( ADSADTX_GETFUNCTABLE )
{
adsxRegisterRDD( &s_uiRddIdADSADTX, "ADSADT" );
}
HB_FUNC( ADSX ) { ; }
HB_FUNC_EXTERN( ADS );
HB_FUNC( ADSNTXX ) { ; }
HB_FUNC( ADSCDXX ) { ; }
HB_FUNC( ADSADTX ) { ; }
HB_FUNC_EXTERN( ADSCDX );
static void hb_adsxRddInit( void * cargo )
{
HB_SYMBOL_UNUSED( cargo );
if( hb_rddRegister( "ADSX", RDT_FULL ) > 1 )
if( hb_rddRegister( "ADSX", RDT_FULL ) > 1 ||
hb_rddRegister( "ADSNTXX", RDT_FULL ) > 1 ||
hb_rddRegister( "ADSCDXX", RDT_FULL ) > 1 ||
hb_rddRegister( "ADSADTX", RDT_FULL ) > 1 )
{
/* try different RDD registrer order */
hb_rddRegister( "ADS", RDT_FULL );
hb_rddRegister( "ADSNTX", RDT_FULL );
hb_rddRegister( "ADSCDX", RDT_FULL );
hb_rddRegister( "ADSADT", RDT_FULL );
if ( hb_rddRegister( "ADSX", RDT_FULL ) > 1 )
if( hb_rddRegister( "ADSX", RDT_FULL ) > 1 ||
hb_rddRegister( "ADSNTXX", RDT_FULL ) > 1 ||
hb_rddRegister( "ADSCDXX", RDT_FULL ) > 1 ||
hb_rddRegister( "ADSADTX", RDT_FULL ) > 1 )
{
hb_errInternal( HB_EI_RDDINVALID, NULL, NULL, NULL );
/* not executed, only to force linking ADS RDD */
HB_FUNC_EXEC( ADS );
HB_FUNC_EXEC( ADSCDX );
}
}
}
HB_INIT_SYMBOLS_BEGIN( adsx1__InitSymbols )
{ "ADSX", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSX )}, NULL },
{ "ADSX_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSX_GETFUNCTABLE )}, NULL }
{ "ADSX", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSX )}, NULL },
{ "ADSX_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSX_GETFUNCTABLE )}, NULL },
{ "ADSNTXX", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSNTXX )}, NULL },
{ "ADSNTXX_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSNTXX_GETFUNCTABLE )}, NULL },
{ "ADSCDXX", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSCDXX )}, NULL },
{ "ADSCDXX_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSCDXX_GETFUNCTABLE )}, NULL },
{ "ADSADTX", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSADTX )}, NULL },
{ "ADSADTX_GETFUNCTABLE", {HB_FS_PUBLIC|HB_FS_LOCAL}, {HB_FUNCNAME( ADSADTX_GETFUNCTABLE )}, NULL }
HB_INIT_SYMBOLS_END( adsx1__InitSymbols )
HB_CALL_ON_STARTUP_BEGIN( _hb_adsx_rdd_init_ )