2008-05-07 11:21 UTC+0100 Viktor Szakats (harbour.01 syenar hu)

* contrib/rddads/make_b32.bat
   * contrib/rddads/make_vc.bat
   * contrib/rddads/ads.ch
   * contrib/rddads/rddads.h
   * contrib/rddads/ads1.c
   * contrib/rddads/adsfunc.c
   * contrib/rddads/adsmgmnt.c
     + Added ACE version autodetection.
       You can override with: -DADS_LIB_VERSION=700 (and similar)
       (ADS_REQUIRE_VERSION still accepted for compatibility)
     ! Fixed a few lib version related problems.
     ! hMgmtHandle global renamed to ads_g_hMgmtHandle.
     * Formatting.

   * contrib/rddads/rddads.h
     + QUESTION: added about ADS_MAX_KEY_LENGTH redefinition.
       Is it needed?

   * source/compiler/hbmain.c
     * Changed output device (hb_compOutStd() -> hb_compOutErr()) 
       for following texts:
       "Compiling..."
       "No code generated"
       "Lines x, Functions/Procedures x"
       This is to replicate CA-Cl*pper behaviour a bit more.

   * include/hbextern.ch
   * common.mak
   * source/rtl/Makefile
   * source/rtl/maxrow.c
   + source/rtl/scrrow.c
   * contrib/xhb/hbcompat.ch
     + Added hb_ScrMaxRow(), hb_ScrMaxCol()
       These will return the screen dimensions regardless 
       of the size of an active window (when using CT 
       windows for example). Functionality is the same 
       as MaxRow(.T.) and MaxCol(.T.) previously.
     ! MaxRow()/MaxCol() extended parameters removed.
     + Added MaxRow(.T.)/MaxCol(.T.) conversions for 
       xhb lib (hbcompat.ch) in both directions.
     ; XBase++ doesn't have any extended parameters 
       for Max*() function. Flagship has two of them, 
       both of them doing something different. CAVO doesn't 
       have these functions at all.

   * contrib/xhb/hbcompat.ch
     ! GTI_* macros updated to HB_GTI_*.

   * source/vm/memvclip.c
     % Minor opt in __QQPUB().

   * source/vm/extend.c
     * 0 -> NULL

   * source/vm/estack.c
     - QUESTION removed.

   * source/lang/msgbgmik.c
   * source/rtl/console.c
   * source/rtl/philes.c
   * source/rtl/adir.prg
   * source/rtl/getsys53.prg
   * source/rtl/getsys.prg
   * source/rtl/tget.prg
   * source/rtl/ttopbar.prg
   * source/rtl/pushbtn.prg
   * source/rtl/mod.c
   * source/rtl/memofile.c
   * source/rtl/radiobtn.prg
   * source/rtl/filesys.c
   * source/rtl/tbrowse.prg
   * source/vm/estack.c
   * source/vm/itemapi.c
   * source/vm/hvm.c
   * source/vm/cmdarg.c
   * source/vm/fm.c
   * source/vm/eval.c
   * source/common/hbver.c
   * source/common/expropt2.c
   * utils/hbtest/hbtest.prg
   * utils/hbtest/rt_misc.prg
   * utils/hbtest/rt_str.prg
     ! Comment fixes and minor formatting.
This commit is contained in:
Viktor Szakats
2008-05-07 10:26:41 +00:00
parent 7311612b6b
commit 53030631bf
42 changed files with 409 additions and 239 deletions

View File

@@ -8,6 +8,91 @@
2008-12-31 13:59 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2008-05-07 11:21 UTC+0100 Viktor Szakats (harbour.01 syenar hu)
* contrib/rddads/make_b32.bat
* contrib/rddads/make_vc.bat
* contrib/rddads/ads.ch
* contrib/rddads/rddads.h
* contrib/rddads/ads1.c
* contrib/rddads/adsfunc.c
* contrib/rddads/adsmgmnt.c
+ Added ACE version autodetection.
You can override with: -DADS_LIB_VERSION=700 (and similar)
(ADS_REQUIRE_VERSION still accepted for compatibility)
! Fixed a few lib version related problems.
! hMgmtHandle global renamed to ads_g_hMgmtHandle.
* Formatting.
* contrib/rddads/rddads.h
+ QUESTION: added about ADS_MAX_KEY_LENGTH redefinition.
Is it needed?
* source/compiler/hbmain.c
* Changed output device (hb_compOutStd() -> hb_compOutErr())
for following texts:
"Compiling..."
"No code generated"
"Lines x, Functions/Procedures x"
This is to replicate CA-Cl*pper behaviour a bit more.
* include/hbextern.ch
* common.mak
* source/rtl/Makefile
* source/rtl/maxrow.c
+ source/rtl/scrrow.c
* contrib/xhb/hbcompat.ch
+ Added hb_ScrMaxRow(), hb_ScrMaxCol()
These will return the screen dimensions regardless
of the size of an active window (when using CT
windows for example). Functionality is the same
as MaxRow(.T.) and MaxCol(.T.) previously.
! MaxRow()/MaxCol() extended parameters removed.
+ Added MaxRow(.T.)/MaxCol(.T.) conversions for
xhb lib (hbcompat.ch) in both directions.
; XBase++ doesn't have any extended parameters
for Max*() function. Flagship has two of them,
both of them doing something different. CAVO doesn't
have these functions at all.
* contrib/xhb/hbcompat.ch
! GTI_* macros updated to HB_GTI_*.
* source/vm/memvclip.c
% Minor opt in __QQPUB().
* source/vm/extend.c
* 0 -> NULL
* source/vm/estack.c
- QUESTION removed.
* source/lang/msgbgmik.c
* source/rtl/console.c
* source/rtl/philes.c
* source/rtl/adir.prg
* source/rtl/getsys53.prg
* source/rtl/getsys.prg
* source/rtl/tget.prg
* source/rtl/ttopbar.prg
* source/rtl/pushbtn.prg
* source/rtl/mod.c
* source/rtl/memofile.c
* source/rtl/radiobtn.prg
* source/rtl/filesys.c
* source/rtl/tbrowse.prg
* source/vm/estack.c
* source/vm/itemapi.c
* source/vm/hvm.c
* source/vm/cmdarg.c
* source/vm/fm.c
* source/vm/eval.c
* source/common/hbver.c
* source/common/expropt2.c
* utils/hbtest/hbtest.prg
* utils/hbtest/rt_misc.prg
* utils/hbtest/rt_str.prg
! Comment fixes and minor formatting.
2008-05-06 02:44 UTC+0200 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/hb-func.sh
! do not add .exe suffix if user added it explicitly in W32/DOS builds
@@ -24,7 +109,6 @@
set C_USR=-DHB_PP_STRICT_LINEINFO_TOKEN %C_USR%
and making clean build.
2008-05-05 11:31 UTC+0100 Miguel Angel Marchuet Frutos <miguelangel@marchuet.net>
* include/hbmemory.ch
* source/vm/fm.c

View File

@@ -540,6 +540,7 @@ RTL_LIB_OBJS = \
$(OBJ_DIR)\samples$(OBJEXT) \
$(OBJ_DIR)\saverest$(OBJEXT) \
$(OBJ_DIR)\scroll$(OBJEXT) \
$(OBJ_DIR)\scrrow$(OBJEXT) \
$(OBJ_DIR)\secondfs$(OBJEXT) \
$(OBJ_DIR)\seconds$(OBJEXT) \
$(OBJ_DIR)\set$(OBJEXT) \

View File

@@ -109,9 +109,9 @@
/*
If you want to limit your app to use an ADS version
earlier than the current one, you must set this constant
ADS_REQUIRE_VERSION
ADS_LIB_VERSION
to the *latest* version you want to allow/require, as in
-DADS_REQUIRE_VERSION=5
-DADS_LIB_VERSION=500
As of 6/7/2004, the default supports linking to v6 and v7,
as there are no v7-specific features yet.
@@ -123,7 +123,7 @@
dll that imports these functions, and
2) Set this "define" when compiling rddads:
-DADS_REQUIRE_VERSION=5
-DADS_LIB_VERSION=500
*/

View File

@@ -174,7 +174,7 @@ static ERRCODE commonError( ADSAREAP pArea, USHORT uiGenCode, USHORT uiSubCode,
hb_errPutOsCode( pError, uiOsCode );
if( szFileName )
hb_errPutFileName( pError, szFileName );
if ( uiFlags )
if( uiFlags )
hb_errPutFlags( pError, uiFlags );
errCode = SUPER_ERROR( ( AREAP ) pArea, pError );
hb_itemRelease( pError );
@@ -458,7 +458,7 @@ static void adsGetKeyItem( ADSAREAP pArea, PHB_ITEM pItem, int iKeyType,
break;
case ADS_DATE:
if ( pArea->iFileType == ADS_NTX )
if( pArea->iFileType == ADS_NTX )
{
hb_itemPutDS( pItem, pKeyBuf );
}
@@ -565,7 +565,7 @@ static ERRCODE adsScopeSet( ADSAREAP pArea, ADSHANDLE hOrder, USHORT nScope, PHB
{
double dTemp;
/* bTypeError = FALSE; */
dTemp = hb_itemGetDL( pItem ) ;
dTemp = hb_itemGetDL( pItem );
u16DataType = ADS_DOUBLEKEY ;
AdsSetScope( hOrder, nScope,
(UNSIGNED8*) &dTemp,
@@ -1072,7 +1072,7 @@ static ERRCODE adsSeek( ADSAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL bFin
*/
if( SELF_SKIPFILTER( ( AREAP ) pArea, bFindLast ? -1 : 1 ) != SUCCESS )
{
if ( pucSavedKey )
if( pucSavedKey )
{
hb_xfree( pucSavedKey );
}
@@ -1113,7 +1113,7 @@ static ERRCODE adsSeek( ADSAREAP pArea, BOOL bSoftSeek, PHB_ITEM pKey, BOOL bFin
*/
pArea->fBof = FALSE;
if ( pucSavedKey )
if( pucSavedKey )
{
hb_xfree( pucSavedKey );
}
@@ -1874,7 +1874,7 @@ static ERRCODE adsFlush( ADSAREAP pArea )
if( !pArea->fReadonly )
{
AdsWriteRecord( pArea->hTable );
#if ADS_REQUIRE_VERSION >= 6
#if ADS_LIB_VERSION >= 600
if( hb_setGetL( HB_SET_HARDCOMMIT ) )
{
AdsFlushFileBuffers( pArea->hTable );
@@ -1984,7 +1984,7 @@ static ERRCODE adsGetValue( ADSAREAP pArea, USHORT uiIndex, PHB_ITEM pItem )
hb_itemPutNLLen( pItem, ( LONG ) lVal, 11 );
break;
}
#if ADS_REQUIRE_VERSION >= 700 && !defined(HB_LONG_LONG_OFF)
#if ADS_LIB_VERSION >= 700 && !defined(HB_LONG_LONG_OFF)
case HB_FT_AUTOINC:
{
@@ -2583,7 +2583,7 @@ static ERRCODE adsCreate( ADSAREAP pArea, LPDBOPENINFO pCreateInfo )
*/
uiLen = ( UNSIGNED32 ) pArea->uiFieldCount * (pArea->uiMaxFieldNameLength + 20) + 1;
if ( uiLen > 65135 )
if( uiLen > 65135 )
{
uiLen = 65135;
}
@@ -3448,7 +3448,7 @@ static ERRCODE adsOrderListClear( ADSAREAP pArea )
{
HB_TRACE(HB_TR_DEBUG, ("adsOrderListClear(%p)", pArea));
#if ADS_REQUIRE_VERSION >= 6
#if ADS_LIB_VERSION >= 600
if( !pArea->fReadonly )
{
AdsFlushFileBuffers( pArea->hTable ); /* meaningful with local server; ignored by remote server */
@@ -3539,7 +3539,7 @@ static ERRCODE adsOrderListFocus( ADSAREAP pArea, LPDBORDERINFO pOrderInfo )
if( u32RetVal != AE_SUCCESS )
{
/* ntx compatibilty: keep current order if failed */
if ( pArea->iFileType == ADS_NTX )
if( pArea->iFileType == ADS_NTX )
return SUCCESS;
pArea->hOrdCurrent = 0;
@@ -3917,7 +3917,7 @@ static ERRCODE adsOrderInfo( ADSAREAP pArea, USHORT uiIndex, LPDBORDERINFO pOrde
break;
case DBOI_POSITION :
if ( pOrderInfo->itmNewVal && HB_IS_NUMERIC( pOrderInfo->itmNewVal ) )
if( pOrderInfo->itmNewVal && HB_IS_NUMERIC( pOrderInfo->itmNewVal ) )
{
/* TODO: results will be wrong if filter is not valid for ADS server */
AdsGotoTop( hIndex );
@@ -3933,12 +3933,12 @@ static ERRCODE adsOrderInfo( ADSAREAP pArea, USHORT uiIndex, LPDBORDERINFO pOrde
{
if( hIndex )
{
UNSIGNED16 usFilterOption = ( pArea->dbfi.itmCobExpr ? ADS_RESPECTFILTERS : ADS_RESPECTSCOPES ) ;
UNSIGNED16 usFilterOption = ( pArea->dbfi.itmCobExpr ? ADS_RESPECTFILTERS : ADS_RESPECTSCOPES );
AdsGetKeyNum( hIndex, usFilterOption, &u32);
}
else
{
UNSIGNED16 usFilterOption = ( pArea->dbfi.itmCobExpr ? ADS_RESPECTFILTERS : ADS_IGNOREFILTERS ) ;
UNSIGNED16 usFilterOption = ( pArea->dbfi.itmCobExpr ? ADS_RESPECTFILTERS : ADS_IGNOREFILTERS );
AdsGetRecordNum( pArea->hTable, usFilterOption, &u32);
}
/*
@@ -4073,7 +4073,7 @@ static ERRCODE adsOrderInfo( ADSAREAP pArea, USHORT uiIndex, LPDBORDERINFO pOrde
*/
if( hIndex )
{
if ( pArea->dbfi.itmCobExpr )
if( pArea->dbfi.itmCobExpr )
{
AdsGetScope( hIndex, ADS_BOTTOM, aucBuffer, &u16len );
@@ -4181,7 +4181,7 @@ static ERRCODE adsOrderInfo( ADSAREAP pArea, USHORT uiIndex, LPDBORDERINFO pOrde
{
if( pOrderInfo->itmResult )
{
adsScopeGet( pArea, hIndex, 0, pOrderInfo->itmResult ) ;
adsScopeGet( pArea, hIndex, 0, pOrderInfo->itmResult );
}
AdsClearScope( hIndex, ADS_TOP ); /* ADS scopes are 1/2 instead of 0/1 */
}
@@ -4196,7 +4196,7 @@ static ERRCODE adsOrderInfo( ADSAREAP pArea, USHORT uiIndex, LPDBORDERINFO pOrde
{
if( pOrderInfo->itmResult )
{
adsScopeGet( pArea, hIndex, 1, pOrderInfo->itmResult ) ;
adsScopeGet( pArea, hIndex, 1, pOrderInfo->itmResult );
}
AdsClearScope( hIndex, ADS_BOTTOM );
}
@@ -4438,7 +4438,7 @@ static ERRCODE adsLock( ADSAREAP pArea, LPDBLOCKINFO pLockInfo )
HB_TRACE(HB_TR_DEBUG, ("adsLock(%p, %p)", pArea, pLockInfo));
ulRecNo = ( ULONG ) hb_itemGetNL( pLockInfo->itmRecID ) ;
ulRecNo = ( ULONG ) hb_itemGetNL( pLockInfo->itmRecID );
switch( pLockInfo->uiMethod )
{
@@ -4692,7 +4692,7 @@ static ERRCODE adsExit( LPRDDNODE pRDD )
{
if( s_iSetListenerHandle )
{
hb_setListenerRemove( s_iSetListenerHandle ) ;
hb_setListenerRemove( s_iSetListenerHandle );
s_iSetListenerHandle = 0;
}
#ifdef __BORLANDC__
@@ -4878,7 +4878,7 @@ static void adsRegisterRDD( USHORT * pusRddId )
if( uiCount )
* uiCount = RDDFUNCSCOUNT;
errCode = hb_rddInherit( pTable, &adsTable, &adsSuper, NULL );
if ( errCode == SUCCESS )
if( errCode == SUCCESS )
{
/*
* we successfully register our RDD so now we can initialize it

View File

@@ -227,7 +227,7 @@ HB_FUNC( ADSGETCONNECTIONTYPE )
if( hConnToCheck )
{
ulRetVal = AdsGetConnectionType ( hConnToCheck, &pusConnectType ) ;
ulRetVal = AdsGetConnectionType ( hConnToCheck, &pusConnectType );
if( ulRetVal != AE_SUCCESS )
{
// it may have set an error value, or leave as 0.
@@ -274,11 +274,11 @@ HB_FUNC( ADSGETTABLECONTYPE )
{
AdsGetTableConnection( pArea->hTable, &pTableConnectHandle );
if ( pTableConnectHandle )
if( pTableConnectHandle )
{
ulRetVal = AdsGetConnectionType( pTableConnectHandle, &pusConnectType ) ;
ulRetVal = AdsGetConnectionType( pTableConnectHandle, &pusConnectType );
if ( ulRetVal != AE_SUCCESS )
if( ulRetVal != AE_SUCCESS )
{
pusConnectType = 0;
}
@@ -306,7 +306,7 @@ HB_FUNC( ADSGETSERVERTIME )
if( ulRetVal == AE_SUCCESS )
{
hb_reta( 3 ) ;
hb_reta( 3 );
hb_storc( (char * )pucDateBuf, -1, 1 );
hb_storc( (char *) pucTimeBuf, -1, 2 );
hb_stornl( plTime, -1, 3 );
@@ -331,7 +331,7 @@ HB_FUNC( ADSISTABLELOCKED )
ulRetVal = AdsIsTableLocked( pArea->hTable, &pbLocked );
}
if ( ulRetVal != AE_SUCCESS )
if( ulRetVal != AE_SUCCESS )
{
hb_errRT_DBCMD( EG_NOTABLE, 2001, NULL, "ADSISTABLELOCKED" );
}
@@ -409,7 +409,6 @@ HB_FUNC( ADSSETCHARTYPE )
#endif
}
hb_retni( oldType );
return;
}
// return whether the current table is opened with OEM or ANSI character set
@@ -419,7 +418,6 @@ HB_FUNC( ADSGETTABLECHARTYPE )
ADSAREAP pArea = hb_rddGetADSWorkAreaPointer();
AdsGetTableCharType( pArea->hTable, &usCharType );
hb_retni( usCharType );
return;
}
@@ -460,7 +458,7 @@ HB_FUNC( ADSSETDELETED )
UNSIGNED16 usShowDeleted = hb_parl( 1 );
UNSIGNED16 pbShowDeleted ;
AdsGetDeleted( &pbShowDeleted ) ;
AdsGetDeleted( &pbShowDeleted );
hb_retl( ! pbShowDeleted );
if( ISLOG( 1 ) )
@@ -474,7 +472,7 @@ HB_FUNC( ADSSETEXACT )
UNSIGNED16 usExact = hb_parl( 1 );
UNSIGNED16 pbExact ;
AdsGetExact( &pbExact ) ;
AdsGetExact( &pbExact );
hb_retl( pbExact );
if( ISLOG( 1 ) )
@@ -502,11 +500,11 @@ HB_FUNC( ADSBLOB2FILE )
ulRetVal = AdsBinaryToFile( pArea->hTable, (UNSIGNED8*)szFieldName, (UNSIGNED8*)szFileName );
if( ulRetVal == AE_SUCCESS )
{
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
@@ -539,11 +537,11 @@ HB_FUNC( ADSFILE2BLOB )
ulRetVal = AdsFileToBinary( pArea->hTable, (UNSIGNED8*)szFieldName, usBinaryType, (UNSIGNED8*)szFileName );
if( ulRetVal == AE_SUCCESS )
{
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
@@ -561,7 +559,7 @@ HB_FUNC( ADSKEYNO )
PHB_ITEM pFilterOption = hb_param( 3, HB_IT_NUMERIC );
/* if arg 1 or 3 is bad, toss error */
if ( ( pxOrder != NULL && !HB_IS_STRING( pxOrder ) && !HB_IS_NUMBER( pxOrder ) && !HB_IS_NIL( pxOrder ) ) ||
if( ( pxOrder != NULL && !HB_IS_STRING( pxOrder ) && !HB_IS_NUMBER( pxOrder ) && !HB_IS_NIL( pxOrder ) ) ||
( pFilterOption != NULL && !HB_IS_NUMBER( pFilterOption ) ) )
{
hb_errRT_DBCMD( EG_ARG, 1014, NULL, "ADSKEYNO" );
@@ -635,13 +633,13 @@ HB_FUNC( ADSKEYCOUNT )
/* 2nd parameter: unsupported Bag Name. */
PHB_ITEM pFilterOption = hb_param( 3, HB_IT_NUMERIC );
if ( pxOrder != NULL && HB_IS_NIL( pxOrder ) )
if( pxOrder != NULL && HB_IS_NIL( pxOrder ) )
{
pxOrder = NULL; // simplifies arg checks below
}
/* if arg 1 or 3 is bad, toss error */
if ( ( pxOrder != NULL && !HB_IS_STRING( pxOrder ) && !HB_IS_NUMBER( pxOrder ) ) ||
if( ( pxOrder != NULL && !HB_IS_STRING( pxOrder ) && !HB_IS_NUMBER( pxOrder ) ) ||
( pFilterOption != NULL && !HB_IS_NUMBER( pFilterOption ) ) )
{
hb_errRT_DBCMD( EG_ARG, 1014, NULL, "ADSKEYCOUNT" );
@@ -1005,11 +1003,11 @@ HB_FUNC( ADSISRECORDINAOF )
if( ulRetVal == AE_SUCCESS && bIsInAOF )
{
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
else
@@ -1313,16 +1311,16 @@ HB_FUNC( ADSCONNECT )
if( ulRetVal == AE_SUCCESS )
{
adsConnectHandle = hConnect;
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
@@ -1343,22 +1341,22 @@ HB_FUNC( ADSDISCONNECT )
// Only allow disconnect of 0 if explicitly passed or adsConnectHandle is 0
// (hConnect might be 0 if caller accidentally disconnects twice; this should not close all connections!)
if ( hConnect != 0 || ISNUM( 1 ) )
if( hConnect != 0 || ISNUM( 1 ) )
{
ulRetVal = AdsDisconnect( hConnect );
}
if( ulRetVal == AE_SUCCESS )
{
if ( hConnect == adsConnectHandle )
if( hConnect == adsConnectHandle )
{
adsConnectHandle = 0;
}
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
@@ -1543,17 +1541,17 @@ bh removed test for adsConnectHandle as it is not actually used;
{
adsCloseCursor( pArea );
}
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
AdsShowError( (UNSIGNED8 *) "ExecuteSQL error:" );
hb_retl( 0 );
hb_retl( FALSE );
}
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
@@ -1607,7 +1605,7 @@ HB_FUNC( ADSCOPYTABLE )
if( ulRetVal == AE_SUCCESS )
{
hb_retl( 1 );
hb_retl( TRUE );
return;
}
}
@@ -1621,7 +1619,7 @@ HB_FUNC( ADSCOPYTABLE )
{
hb_errRT_DBCMD( EG_NOTABLE, 2001, NULL, "ADSCOPYTABLE" );
}
hb_retl( 0 );
hb_retl( FALSE );
}
@@ -1819,7 +1817,7 @@ HB_FUNC( ADSGETNUMOPENTABLES )
{
UNSIGNED16 pusNum = 0;
AdsGetNumOpenTables( &pusNum ) ;
AdsGetNumOpenTables( &pusNum );
hb_retnl( pusNum );
}
@@ -1951,11 +1949,11 @@ HB_FUNC( ADSREINDEX )
if( ulRetVal == AE_SUCCESS )
{
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
@@ -2037,9 +2035,9 @@ HB_FUNC( ADSISEMPTY )
hb_retl( pbEmpty );
}
#if ADS_REQUIRE_VERSION >= 6
#if ADS_LIB_VERSION >= 620
HB_FUNC( ADSGETNUMACTIVELINKS ) // requires 6.2 ! Only valid for a DataDict
HB_FUNC( ADSGETNUMACTIVELINKS ) // Only valid for a DataDict
{
UNSIGNED16 pusNumLinks = 0;
ADSHANDLE hConnect = HB_ADS_PARCONNECTION( 1 );
@@ -2051,6 +2049,9 @@ HB_FUNC( ADSGETNUMACTIVELINKS ) // requires 6.2 ! Only valid for a DataD
hb_retnl( pusNumLinks );
}
#endif
#if ADS_LIB_VERSION >= 600
HB_FUNC( ADSDDADDTABLE )
{
@@ -2064,11 +2065,11 @@ HB_FUNC( ADSDDADDTABLE )
if( ulRetVal == AE_SUCCESS )
{
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
@@ -2083,11 +2084,11 @@ HB_FUNC( ADSDDREMOVETABLE )
if( ulRetVal == AE_SUCCESS )
{
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
@@ -2103,11 +2104,11 @@ HB_FUNC( ADSDDREMOVEINDEXFILE )
if( ulRetVal == AE_SUCCESS )
{
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
@@ -2122,11 +2123,11 @@ HB_FUNC( ADSDDADDUSERTOGROUP )
if( ulRetVal == AE_SUCCESS )
{
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
@@ -2142,11 +2143,11 @@ HB_FUNC( ADSDDREMOVEUSERFROMGROUP )
if( ulRetVal == AE_SUCCESS )
{
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
@@ -2176,11 +2177,11 @@ HB_FUNC( ADSCONNECT60 )
{
hb_stornl( hConnect, 6 );
}
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
@@ -2242,7 +2243,7 @@ HB_FUNC( ADSDDGETDATABASEPROPERTY )
BOOL bChar = FALSE;
ADSHANDLE hConnect = HB_ADS_PARCONNECTION( 2 );
switch ( ulProperty )
switch( ulProperty )
{
case ADS_DD_COMMENT:
case ADS_DD_DEFAULT_TABLE_PATH:
@@ -2298,7 +2299,7 @@ HB_FUNC( ADSDDSETDATABASEPROPERTY )
UNSIGNED32 ulRetVal;
UNSIGNED16 ulBuffer;
UNSIGNED16 ulProperty = ( UNSIGNED16 ) hb_parni( 1 );
PHB_ITEM pParam = hb_param( 2, HB_IT_ANY ) ;
PHB_ITEM pParam = hb_param( 2, HB_IT_ANY );
ADSHANDLE hConnect = HB_ADS_PARCONNECTION( 3 );
switch( ulProperty )
@@ -2315,17 +2316,19 @@ HB_FUNC( ADSDDSETDATABASEPROPERTY )
}
case ADS_DD_MAX_FAILED_ATTEMPTS:
case ADS_DD_INTERNET_SECURITY_LEVEL:
#if ADS_LIB_VERSION >= 620
case ADS_DD_VERSION_MAJOR:
case ADS_DD_VERSION_MINOR:
#endif
{
ulBuffer = hb_itemGetNI( pParam );
ulRetVal = AdsDDSetDatabaseProperty( hConnect, ulProperty, &ulBuffer, 2 );
break;
}
case ADS_DD_LOG_IN_REQUIRED:
case ADS_DD_VERIFY_ACCESS_RIGHTS:
case ADS_DD_ENCRYPT_NEW_TABLE:
case ADS_DD_ENABLE_INTERNET:
case ADS_DD_LOG_IN_REQUIRED:
case ADS_DD_VERIFY_ACCESS_RIGHTS:
case ADS_DD_ENCRYPT_NEW_TABLE:
case ADS_DD_ENABLE_INTERNET:
{
ulBuffer = hb_itemGetL( pParam );
ulRetVal = AdsDDSetDatabaseProperty( hConnect, ulProperty, &ulBuffer, 2 );
@@ -2337,7 +2340,7 @@ HB_FUNC( ADSDDSETDATABASEPROPERTY )
break;
}
}
hb_retl( ulRetVal == AE_SUCCESS);
hb_retl( ulRetVal == AE_SUCCESS );
}
/*
@@ -2367,7 +2370,7 @@ HB_FUNC( ADSDDGETUSERPROPERTY )
ulRetVal = AdsDDGetUserProperty( hConnect, pucUserName, usPropertyID,
pvProperty, &usPropertyLen );
if (ulRetVal == AE_SUCCESS )
if(ulRetVal == AE_SUCCESS )
{
hb_storc( (char *) pvProperty, 3 );
}
@@ -2422,11 +2425,11 @@ HB_FUNC( ADSTESTLOGIN )
pvProperty, &usPropertyLen );
}
AdsDisconnect( adsTestHandle );
hb_retl( 1 ) ;
hb_retl( TRUE );
}
else
{
hb_retl( 0 ) ;
hb_retl( FALSE );
}
}
@@ -2479,11 +2482,11 @@ HB_FUNC( ADSCOPYTABLECONTENTS )
ADS_IGNOREFILTERS );
if( ulRetVal == AE_SUCCESS )
{
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
}
@@ -2504,7 +2507,7 @@ HB_FUNC( ADSDIRECTORY )
UNSIGNED32 ulRetVal;
UNSIGNED8 ucFileName[ ADS_MAX_TABLE_NAME ];
UNSIGNED16 usFileNameLen;
#if ADS_REQUIRE_VERSION >= 900
#if ADS_LIB_VERSION >= 900
ADSHANDLE sHandle = 0;
#else
SIGNED32 sHandle = 0;
@@ -2517,7 +2520,7 @@ HB_FUNC( ADSDIRECTORY )
usFileNameLen = ADS_MAX_TABLE_NAME;
ulRetVal = AdsFindFirstTable( hConnect, ( UNSIGNED8* ) ( ISCHAR( 1 ) ? hb_parcx( 1 ) : "" ), ( UNSIGNED8* ) ucFileName, &usFileNameLen, &sHandle );
if ( ulRetVal == AE_SUCCESS || ulRetVal == AE_NO_FILE_FOUND )
if( ulRetVal == AE_SUCCESS || ulRetVal == AE_NO_FILE_FOUND )
{
while( ulRetVal == AE_SUCCESS )
{
@@ -2602,9 +2605,9 @@ HB_FUNC( ADSGETSERVERNAME )
}
}
#endif /* ADS_REQUIRE_VERSION >= 6 */
#endif /* ADS_LIB_VERSION >= 600 */
#if ADS_REQUIRE_VERSION >= 7
#if ADS_LIB_VERSION >= 700
HB_FUNC( ADSCLOSECACHEDTABLES )
{
@@ -2613,17 +2616,17 @@ HB_FUNC( ADSCLOSECACHEDTABLES )
if( hConnect )
{
AdsCloseCachedTables( hConnect );
hb_retl( 1 );
hb_retl( TRUE );
}
else
{
hb_retl( 0 );
hb_retl( FALSE );
}
}
#endif /* ADS_REQUIRE_VERSION >= 7 */
#endif /* ADS_LIB_VERSION >= 700 */
#if ADS_REQUIRE_VERSION >= 800
#if ADS_LIB_VERSION >= 800
HB_FUNC( ADSCREATESAVEPOINT )
{
@@ -2644,7 +2647,7 @@ HB_FUNC( ADSROLLBACKSAVEPOINT )
#endif
#if ADS_REQUIRE_VERSION >= 900
#if ADS_LIB_VERSION >= 900
HB_FUNC( ADSDDCREATELINK )
{

View File

@@ -63,24 +63,24 @@
Advantage Management API Examples
*/
ADSHANDLE hMgmtHandle = 0;
ADSHANDLE ads_g_hMgmtHandle = 0;
HB_FUNC( ADSMGCONNECT )
{
/* ulRetVal = AdsMgConnect( "\\\\server\\volume:", NULL, NULL, &hMgmtHandle );
/* ulRetVal = AdsMgConnect( "\\\\server\\volume:", NULL, NULL, &ads_g_hMgmtHandle );
// UNSIGNED32 ENTRYPOINT AdsMgConnect( UNSIGNED8 *pucServerName,
// UNSIGNED8 *pucUserName,
// UNSIGNED8 *pucPassword,
// ADSHANDLE *phMgmtHandle );
// ADSHANDLE *pads_g_hMgmtHandle );
*/
hb_retnl( AdsMgConnect( (UNSIGNED8 *) hb_parcx(1), (UNSIGNED8 *) hb_parcx(2), (UNSIGNED8 *) hb_parcx(3), &hMgmtHandle ) );
hb_retnl( AdsMgConnect( (UNSIGNED8 *) hb_parcx(1), (UNSIGNED8 *) hb_parcx(2), (UNSIGNED8 *) hb_parcx(3), &ads_g_hMgmtHandle ) );
}
HB_FUNC( ADSMGDISCONNECT )
{
hb_retnl( AdsMgDisconnect( hMgmtHandle ) );
hMgmtHandle = 0;
hb_retnl( AdsMgDisconnect( ads_g_hMgmtHandle ) );
ads_g_hMgmtHandle = 0;
}
HB_FUNC( ADSMGGETINSTALLINFO )
@@ -90,10 +90,10 @@ HB_FUNC( ADSMGGETINSTALLINFO )
ADS_MGMT_INSTALL_INFO stInstallInfo;
usStructSize = sizeof( ADS_MGMT_INSTALL_INFO );
ulRetVal = AdsMgGetInstallInfo( hMgmtHandle, &stInstallInfo, &usStructSize );
ulRetVal = AdsMgGetInstallInfo( ads_g_hMgmtHandle, &stInstallInfo, &usStructSize );
/*
//if ( sizeof( ADS_MGMT_INSTALL_INFO ) < usStructSize )
//if( sizeof( ADS_MGMT_INSTALL_INFO ) < usStructSize )
// printf( "\nInstallation Information structure on server is larger." );
// printf( "\nMore possible info available." );
*/
@@ -120,15 +120,15 @@ HB_FUNC( ADSMGGETACTIVITYINFO )
unsigned int iOption = hb_parni( 1 );
usStructSize = sizeof( ADS_MGMT_ACTIVITY_INFO );
ulRetVal = AdsMgGetActivityInfo( hMgmtHandle, &stActivityInfo, &usStructSize );
ulRetVal = AdsMgGetActivityInfo( ads_g_hMgmtHandle, &stActivityInfo, &usStructSize );
/*
// if ( sizeof( ADS_MGMT_ACTIVITY_INFO ) < usStructSize )
// if( sizeof( ADS_MGMT_ACTIVITY_INFO ) < usStructSize )
// printf( "\nActivity Information structure on server is larger." );
// printf( "\nMore possible info available." );
*/
if ( iOption && ulRetVal == AE_SUCCESS )
if( iOption && ulRetVal == AE_SUCCESS )
{
switch ( iOption )
switch( iOption )
{
case 1 :
hb_retnl( stActivityInfo.ulOperations ); /* Number operations since started */
@@ -238,15 +238,15 @@ HB_FUNC( ADSMGGETCOMMSTATS )
ADS_MGMT_COMM_STATS stCommStats;
usStructSize = sizeof( ADS_MGMT_COMM_STATS );
ulRetVal = AdsMgGetCommStats( hMgmtHandle, &stCommStats, &usStructSize );
ulRetVal = AdsMgGetCommStats( ads_g_hMgmtHandle, &stCommStats, &usStructSize );
/*
// if ( sizeof( ADS_MGMT_COMM_STATS ) < usStructSize )
// if( sizeof( ADS_MGMT_COMM_STATS ) < usStructSize )
// {
// HB_TRACE(HB_TR_INFO, ("The Communication Statistics structure on the server is larger.
// \nMore info is available with the current ACE.H." ));
// }
*/
if ( ulRetVal == AE_SUCCESS )
if( ulRetVal == AE_SUCCESS )
{
hb_reta( 11 );
hb_stornd( stCommStats.dPercentCheckSums, -1, 1 ); /* % of pkts with checksum failures */
@@ -265,9 +265,9 @@ HB_FUNC( ADSMGGETCOMMSTATS )
HB_FUNC( ADSMGRESETCOMMSTATS )
{
if ( hMgmtHandle )
if( ads_g_hMgmtHandle )
{
hb_retnl( AdsMgResetCommStats( hMgmtHandle ) );
hb_retnl( AdsMgResetCommStats( ads_g_hMgmtHandle ) );
}
else
{
@@ -290,19 +290,19 @@ HB_FUNC( ADSMGGETCONFIGINFO )
usConfigValuesStructSize = sizeof( ADS_MGMT_CONFIG_PARAMS );
usConfigMemoryStructSize = sizeof( ADS_MGMT_CONFIG_MEMORY );
ulRetVal = AdsMgGetConfigInfo( hMgmtHandle, &stConfigValues,
ulRetVal = AdsMgGetConfigInfo( ads_g_hMgmtHandle, &stConfigValues,
&usConfigValuesStructSize,
&stConfigMemory, &usConfigMemoryStructSize );
/*
// if ( sizeof( ADS_MGMT_CONFIG_PARAMS ) < usConfigValuesStructSize )
// if( sizeof( ADS_MGMT_CONFIG_PARAMS ) < usConfigValuesStructSize )
// printf( "\nConfiguration Values structure on server is larger." );
// if ( sizeof( ADS_MGMT_CONFIG_MEMORY ) < usConfigMemoryStructSize )
// if( sizeof( ADS_MGMT_CONFIG_MEMORY ) < usConfigMemoryStructSize )
// printf( "\nConfiguration Memory structure on server is larger." );
*/
if ( ulRetVal == AE_SUCCESS )
if( ulRetVal == AE_SUCCESS )
{
if ( iOption == 0 )
if( iOption == 0 )
{
hb_reta( 25 );
hb_stornl( stConfigValues.ulNumConnections , -1, 1 ); /* number connections */
@@ -320,15 +320,15 @@ HB_FUNC( ADSMGGETCONFIGINFO )
hb_stornl( stConfigValues.usNumSendECBs , -1, 13); /* number send ECBs (NLM only) */
hb_stornd( stConfigValues.usNumBurstPackets , -1, 14); /* number packets per burst */
hb_stornl( stConfigValues.usNumWorkerThreads , -1, 15); /* number worker threads */
#if defined(ADS_REQUIRE_VERSION) && ADS_REQUIRE_VERSION >= 810
#if ADS_LIB_VERSION >= 810
hb_stornl( stConfigValues.ulSortBuffSize , -1, 16); /* index sort buffer size */
hb_storni( 0 , -1, 17); /* reserved */
hb_storni( 0 , -1, 18); /* reserved */
#elif defined(ADS_REQUIRE_VERSION) && ADS_REQUIRE_VERSION < 810
#elif ADS_LIB_VERSION < 810
hb_stornl( stConfigValues.usSortBuffSize , -1, 16); /* index sort buffer size */
hb_storni( stConfigValues.ucReserved1 , -1, 17); /* reserved */
hb_storni( stConfigValues.ucReserved2 , -1, 18); /* reserved */
#else
#else /* not currently used */
hb_stornl( 0 , -1, 16); /* index sort buffer size */
hb_storni( 0 , -1, 17); /* reserved */
hb_storni( 0 , -1, 18); /* reserved */
@@ -343,7 +343,7 @@ HB_FUNC( ADSMGGETCONFIGINFO )
/* hb_stornl( stConfigValues.usReserved5 , -1, 26); reserved */
}
else if ( iOption == 1 )
else if( iOption == 1 )
{
hb_reta( 13 );
hb_stornd( stConfigMemory.ulTotalConfigMem , -1, 1 ); /* Total mem taken by cfg params */
@@ -377,7 +377,7 @@ HB_FUNC( ADSMGGETUSERNAMES ) /* Return array of connected users */
ADS_MGMT_USER_INFO astUserInfo[MAX_NUM_USERS];
bh: Enhancement: Get # of tables from ADS_MGMT_ACTIVITY_INFO.stUsers instead of set size
*/
if ( ISNUM( 2 ) )
if( ISNUM( 2 ) )
{
ulMaxUsers = (UNSIGNED16) hb_parnl( 2 );
}
@@ -390,26 +390,28 @@ HB_FUNC( ADSMGGETUSERNAMES ) /* Return array of connected users */
UNSIGNED16 *pusArrayLen,
UNSIGNED16 *pusStructSize );
*/
ulRetVal = AdsMgGetUserNames( hMgmtHandle, ISCHAR( 1 ) ? (UNSIGNED8 *) hb_parcx( 1 ) : NULL,
ulRetVal = AdsMgGetUserNames( ads_g_hMgmtHandle, ISCHAR( 1 ) ? (UNSIGNED8 *) hb_parcx( 1 ) : NULL,
pastUserInfo,
&ulMaxUsers,
&usStructSize );
/*
if ( sizeof( ADS_MGMT_USER_INFO ) < usStructSize )
if( sizeof( ADS_MGMT_USER_INFO ) < usStructSize )
{
HB_TRACE(HB_TR_INFO, ("The \nUser Information structure on the server is larger.
\nMore info is available with the current ACE.H." ));
}
*/
if ( ulRetVal == AE_SUCCESS )
if( ulRetVal == AE_SUCCESS )
{
PHB_ITEM pArray = hb_itemArrayNew( ulMaxUsers ), pArrayItm;
for ( ulCount = 1; ulCount <= ulMaxUsers; ulCount++ )
for( ulCount = 1; ulCount <= ulMaxUsers; ulCount++ )
{
pArrayItm = hb_arrayGetItemPtr( pArray, ulCount );
#if ADS_REQUIRE_VERSION >= 800
#if ADS_LIB_VERSION >= 810
hb_arrayNew( pArrayItm, 6 );
#elif ADS_LIB_VERSION >= 800
hb_arrayNew( pArrayItm, 5 );
#else
hb_arrayNew( pArrayItm, 3 );
#endif
@@ -419,11 +421,13 @@ HB_FUNC( ADSMGGETUSERNAMES ) /* Return array of connected users */
pastUserInfo[ulCount].usConnNumber );
hb_itemPutC( hb_arrayGetItemPtr( pArrayItm, 3 ),
( char * ) pastUserInfo[ulCount].aucAddress );
#if ADS_REQUIRE_VERSION >= 800
#if ADS_LIB_VERSION >= 800
hb_itemPutC( hb_arrayGetItemPtr( pArrayItm, 4 ),
( char * ) pastUserInfo[ulCount].aucAuthUserName );
hb_itemPutC( hb_arrayGetItemPtr( pArrayItm, 5 ),
( char * ) pastUserInfo[ulCount].aucOSUserLoginName );
#endif
#if ADS_LIB_VERSION >= 810
hb_itemPutC( hb_arrayGetItemPtr( pArrayItm, 6 ),
( char * ) pastUserInfo[ulCount].aucTSAddress );
#endif
@@ -466,13 +470,13 @@ HB_FUNC( ADSMGGETLOCKOWNER )
ADS_MGMT_USER_INFO * pstUserInfo;
pstUserInfo = (ADS_MGMT_USER_INFO *) hb_xgrab( sizeof( ADS_MGMT_USER_INFO ) );
ulRetVal = AdsMgGetLockOwner( hMgmtHandle,
ulRetVal = AdsMgGetLockOwner( ads_g_hMgmtHandle,
(UNSIGNED8 *) hb_parcx( 1 ),
(UNSIGNED32) hb_parnl(2),
pstUserInfo,
&usStructSize,
&pusLockType);
if ( ulRetVal== AE_SUCCESS )
if( ulRetVal== AE_SUCCESS )
{
hb_reta(5);
hb_storc ( (char *) pstUserInfo->aucUserName , -1, 1); /* Machine name under NT */
@@ -493,8 +497,8 @@ HB_FUNC( ADSMGGETSERVERTYPE ) /* Determine OS ADS is running on; see ADS_MGMT_
UNSIGNED32 ulRetVal;
UNSIGNED16 usServerType;
ulRetVal = AdsMgGetServerType( hMgmtHandle, &usServerType );
if ( ulRetVal == AE_SUCCESS )
ulRetVal = AdsMgGetServerType( ads_g_hMgmtHandle, &usServerType );
if( ulRetVal == AE_SUCCESS )
{
hb_retnl( usServerType );
}
@@ -536,7 +540,7 @@ HB_FUNC( ADSMGGETOPENTABLES ) /* nMaxNumberOfFilesToReturn, cUserName,
astOpenTableInfo = ( ADS_MGMT_TABLE_INFO * ) hb_xgrab( sizeof( ADS_MGMT_TABLE_INFO ) * pusArrayLen );
ulRetVal = AdsMgGetOpenTables( hMgmtHandle,
ulRetVal = AdsMgGetOpenTables( ads_g_hMgmtHandle,
(UNSIGNED8 *) pucUserName,
usConnNumber,
astOpenTableInfo,
@@ -599,7 +603,7 @@ HB_FUNC( ADSMGGETOPENINDEXES ) /* nMaxNumberOfFilesToReturn, cTableName, cU
astOpenIndexInfo = ( ADS_MGMT_INDEX_INFO * ) hb_xgrab( sizeof( ADS_MGMT_INDEX_INFO ) * pusArrayLen );
ulRetVal = AdsMgGetOpenIndexes( hMgmtHandle,
ulRetVal = AdsMgGetOpenIndexes( ads_g_hMgmtHandle,
(UNSIGNED8 *) pucTableName,
(UNSIGNED8 *) pucUserName,
usConnNumber,
@@ -652,10 +656,10 @@ HB_FUNC( ADSMGKILLUSER )
HB_FUNC( ADSMGKILLUSER )
{
hb_retnl( (UNSIGNED16) AdsMgKillUser( hMgmtHandle, (UNSIGNED8 *) hb_parc(1), (UNSIGNED16) hb_parnl(2) ));
hb_retnl( (UNSIGNED16) AdsMgKillUser( ads_g_hMgmtHandle, (UNSIGNED8 *) hb_parc(1), (UNSIGNED16) hb_parnl(2) ));
}
HB_FUNC( ADSMGGETHANDLE )
{
hb_retnl( (LONG) hMgmtHandle );
hb_retnl( (LONG) ads_g_hMgmtHandle );
}

View File

@@ -18,10 +18,6 @@ goto POST_EXIT
:DIR_OK
set CFLAGS=-I%ADS_DIR%
if "%ADS_VER%" == "" goto DEFAULT_VER
set CFLAGS=%CFLAGS% -DADS_REQUIRE_VERSION=%ADS_VER%
:DEFAULT_VER
set HB_DLL_NAME=ace32
if exist "%SystemRoot%\system32\%HB_DLL_NAME%.dll" set HB_DLL_DIR=%SystemRoot%\system32
if exist "%ADS_DIR%\Redistribute\%HB_DLL_NAME%.dll" set HB_DLL_DIR=%ADS_DIR%\Redistribute

View File

@@ -18,10 +18,6 @@ goto POST_EXIT
:DIR_OK
set CFLAGS=-I%ADS_DIR%
if "%ADS_VER%" == "" goto DEFAULT_VER
set CFLAGS=%CFLAGS% -DADS_REQUIRE_VERSION=%ADS_VER%
:DEFAULT_VER
set HB_DLL_NAME=ace32
if exist "%SystemRoot%\system32\%HB_DLL_NAME%.dll" set HB_DLL_DIR=%SystemRoot%\system32
if exist "%ADS_DIR%\Redistribute\%HB_DLL_NAME%.dll" set HB_DLL_DIR=%ADS_DIR%\Redistribute

View File

@@ -64,8 +64,36 @@
#include "ace.h"
/* Autodetect ACE version. */
/* Compatibility */
#ifdef ADS_REQUIRE_VERSION
#define ADS_LIB_VERSION ADS_REQUIRE_VERSION
#endif
#ifndef ADS_LIB_VERSION
#if defined(ADS_NOTIFICATION_CONNECTION)
#define ADS_LIB_VERSION 900 // or upper
#elif defined(ADS_UDP_IP_CONNECTION)
#define ADS_LIB_VERSION 810 // or upper
#elif defined(ADS_REPLICATION_CONNECTION)
#define ADS_LIB_VERSION 800 // or upper
#elif defined(ADS_NOT_AUTO_OPEN)
#define ADS_LIB_VERSION 710 // or upper
#elif defined(ADS_FTS_INDEX_ORDER)
#define ADS_LIB_VERSION 700 // or upper
#elif defined(ADS_COMPRESS_ALWAYS)
#define ADS_LIB_VERSION 620 // or upper
#elif defined(ADS_USER_DEFINED)
#define ADS_LIB_VERSION 611 // or upper
#else
#define ADS_LIB_VERSION 500 // or lower
#endif
#endif
/* QUESTION: Why do we redefine this? Normally it is 4082 in 7.10 or upper and 256 in lower versions. */
#undef ADS_MAX_KEY_LENGTH
#if ADS_REQUIRE_VERSION >= 8
#if ADS_LIB_VERSION >= 800
#define ADS_MAX_KEY_LENGTH 4082 /* maximum key value length. This is the max key length */
#else /* of ADI indexes. Max CDX key length is 240. Max */
#define ADS_MAX_KEY_LENGTH 256 /* NTX key length is 256 */

View File

@@ -61,6 +61,9 @@
#xtranslate hb_gtInfo([<x,...>]) => gtInfo(<x>)
#xtranslate hb_gtVersion([<x>]) => hb_gt_Version(<x>)
#xtranslate hb_ScrMaxRow() => MaxRow(.T.)
#xtranslate hb_ScrMaxCol() => MaxCol(.T.)
#xtranslate hb_isregex([<x>]) => hb_isregexstring(<x>)
#xtranslate hb_pvalue([<x,...>]) => pvalue(<x>)
#xtranslate hb_methodName([<x,...>])=> methodName(<x>)
@@ -114,13 +117,15 @@
#xtranslate gtInfo([<x,...>]) => hb_gtInfo(<x>)
#xtranslate hb_gt_Version([<x>]) => hb_gtVersion(<x>)
#xtranslate gtSetClipboard(<x>) => hb_gtInfo( GTI_CLIPBOARDDATA, <x> )
#xtranslate gtGetClipboard() => hb_gtInfo( GTI_CLIPBOARDDATA )
#xtranslate gtGetClipBoardSize() => Len( hb_gtInfo( GTI_CLIPBOARDDATA ) )
#xtranslate gtPasteClipBoard([<n>]) => hb_gtInfo( GTI_CLIPBOARDPAST )
#xtranslate gtSetClipboard(<x>) => hb_gtInfo( HB_GTI_CLIPBOARDDATA, <x> )
#xtranslate gtGetClipboard() => hb_gtInfo( HB_GTI_CLIPBOARDDATA )
#xtranslate gtGetClipBoardSize() => Len( hb_gtInfo( HB_GTI_CLIPBOARDDATA ) )
#xtranslate gtPasteClipBoard([<n>]) => hb_gtInfo( HB_GTI_CLIPBOARDPAST )
#xtranslate gtProcessMessages() => NextKey()
#xtranslate gfxPrimitive([<x,...>]) => hb_gfxPrimitive(<x>)
#xtranslate gfxText([<x,...>]) => hb_gfxText(<x>)
#xtranslate MaxRow(.T.) => hb_ScrMaxRow()
#xtranslate MaxCol(.T.) => hb_ScrMaxCol()
#xtranslate hb_isregexstring([<x>]) => hb_isregex(<x>)
#xtranslate pvalue([<x,...>]) => hb_pvalue(<x>)
@@ -259,4 +264,3 @@
#endif
#endif /* __HARBOUR__ */

View File

@@ -905,6 +905,9 @@ EXTERNAL HB_GETSTDOUT
EXTERNAL HB_DBPACK
EXTERNAL HB_DBZAP
EXTERNAL HB_SCRMAXROW
EXTERNAL HB_SCRMAXCOL
/* Codepage support */
EXTERNAL HB_CODEPAGE_BG866
EXTERNAL HB_CODEPAGE_BGISO

View File

@@ -1459,7 +1459,7 @@ BOOL hb_compExprReduceAT( HB_EXPR_PTR pSelf, HB_COMP_DECL )
if( pSub->ExprType == HB_ET_STRING && pText->ExprType == HB_ET_STRING )
{
/* This is CA-Clipper compiler optimizer behavior,
/* This is CA-Cl*pper compiler optimizer behavior,
* macro compiler does not have optimizer [druzus]
*/
if( pSub->ulLength == 0 )

View File

@@ -555,8 +555,8 @@ char * hb_verHarbour( void )
pszVersion = ( char * ) hb_xgrab( 80 );
/* NOTE:
CA-Clipper 5.2e returns: "Clipper (R) 5.2e Intl. (x216) (1995.02.07)"
CA-Clipper 5.3b returns: "Clipper (R) 5.3b Intl. (Rev. 338) (1997.04.25)"
CA-Cl*pper 5.2e returns: "Clipper (R) 5.2e Intl. (x216) (1995.02.07)"
CA-Cl*pper 5.3b returns: "Clipper (R) 5.3b Intl. (Rev. 338) (1997.04.25)"
*/
snprintf( pszVersion, 80, "Harbour %s build %d.%d-%d Intl. (Rev. %d)",

View File

@@ -4631,7 +4631,7 @@ static int hb_compCompile( HB_COMP_DECL, const char * szPrg, int iFileType )
szFileName, szPpoName );
else
snprintf( buffer, sizeof( buffer ), "Compiling '%s'...\n", szFileName );
hb_compOutStd( HB_COMP_PARAM, buffer );
hb_compOutErr( HB_COMP_PARAM, buffer );
}
if( HB_COMP_PARAM->fI18n )
@@ -4749,7 +4749,7 @@ static int hb_compCompile( HB_COMP_DECL, const char * szPrg, int iFileType )
"\r%i error%s\n\nNo code generated\n",
HB_COMP_PARAM->iErrorCount,
HB_COMP_PARAM->iErrorCount > 1 ? "s" : "" );
hb_compOutStd( HB_COMP_PARAM, buffer );
hb_compOutErr( HB_COMP_PARAM, buffer );
}
else if( HB_COMP_PARAM->iExitLevel == HB_EXITLEVEL_SETEXIT )
{
@@ -4759,7 +4759,7 @@ static int hb_compCompile( HB_COMP_DECL, const char * szPrg, int iFileType )
{
iStatus = EXIT_FAILURE;
bSkipGen = TRUE;
hb_compOutStd( HB_COMP_PARAM, "\nNo code generated.\n" );
hb_compOutErr( HB_COMP_PARAM, "\nNo code generated.\n" );
}
}
@@ -4817,7 +4817,7 @@ static int hb_compCompile( HB_COMP_DECL, const char * szPrg, int iFileType )
"\rLines %i, Functions/Procedures %i\n",
hb_pp_lineTot( HB_COMP_PARAM->pLex->pPP ),
HB_COMP_PARAM->iFunctionCnt );
hb_compOutStd( HB_COMP_PARAM, buffer );
hb_compOutErr( HB_COMP_PARAM, buffer );
}
hb_compGenOutput( HB_COMP_PARAM, HB_COMP_PARAM->iLanguage );

View File

@@ -93,7 +93,7 @@ static HB_LANG s_lang =
"<EFBFBD>¥²ºª",
"‘º¡®² ",
/* CA-Clipper compatible natmsg items */
/* CA-Cl*pper compatible natmsg items */
"” ©«®¢¥ ± ¤ ­­¨ # ‡ ¯¨± <20>®±«.<2E>®¯° ¢¨ <20> §¬¥°",
"Do you want more samples?",

View File

@@ -109,6 +109,7 @@ C_SOURCES=\
samples.c \
saverest.c \
scroll.c \
scrrow.c \
secondfs.c \
seconds.c \
set.c \

View File

@@ -67,7 +67,7 @@ FUNCTION ADir( cFileMask, aName, aSize, aDate, aTime, aAttr )
LOCAL cName
LOCAL cExt
// ; CA-Clipper would fail on this case.
// ; CA-Cl*pper would fail on this case.
IF !ISCHARACTER( cFileMask )
RETURN 0

View File

@@ -122,7 +122,7 @@ void hb_conInit( void )
#ifdef HB_C52_UNDOC
{
/* Undocumented CA-Clipper switch //STDERR:x */
/* Undocumented CA-Cl*pper switch //STDERR:x */
FHANDLE hStderr = ( FHANDLE ) hb_cmdargNum( "STDERR" );
if( hStderr == 0 ) /* //STDERR with no parameter or 0 */

View File

@@ -81,10 +81,10 @@
*
*/
/* NOTE: In DOS/DJGPP under WinNT4 hb_fsSeek( fhnd, offset < 0, FS_SET) will
set the file pointer to the passed negative value, and the subsequent
hb_fsWrite() call will fail. In CA-Clipper hb_fsSeek() will fail,
the pointer will not be moved, and thus the hb_fsWrite() call will
/* NOTE: In DOS/DJGPP under WinNT4 hb_fsSeek( fhnd, offset < 0, FS_SET ) will
set the file pointer to the passed negative value and the subsequent
hb_fsWrite() call will fail. In CA-Cl*pper, _fsSeek() will fail,
the pointer will not be moved and thus the _fsWrite() call will
successfully write the buffer to the current file position. [vszakats]
This has been corrected by ptucker

View File

@@ -55,7 +55,7 @@
* www - http://www.harbour-project.org
*
* Copyright 2001 Luiz Rafael Culik
* Support for CA-Clipper 5.3 Getsystem
* Support for CA-Cl*pper 5.3 Getsystem
*
* See doc/license.txt for licensing terms.
*

View File

@@ -55,7 +55,7 @@
* www - http://www.harbour-project.org
*
* Copyright 2001 Luiz Rafael Culik
* Support for CA-Clipper 5.3 Getsystem
* Support for CA-Cl*pper 5.3 Getsystem
*
* See doc/license.txt for licensing terms.
*

View File

@@ -53,37 +53,12 @@
#include "hbapi.h"
#include "hbapigt.h"
HB_FUNC( MAXROW ) /* Return the maximum screen row number (zero origin) */
HB_FUNC( MAXROW ) /* Return the maximum screen/"viewport" row number (zero origin) */
{
/*
* if called with logical .T. parameter then return real screen high - 1
* It gives exactly the same result in all standard GT drivers so we
* are still Clipper compatible. The difference can appear in some extended
* GT drivers which have additional functionality, f.e. CTW GT which
* is upper level GT and add CTIII Window support. When it's activated
* then MaxRow() will return current window max row and MaxRow(.t.) real
* screen (window 0) max row what is the exact behavior of MaxRow()
* in CT3, [druzus]
*/
if( ISLOG( 1 ) && hb_parl( 1 ) )
{
USHORT uiRows, uiCols;
hb_gtScrDim( &uiRows, &uiCols );
hb_retni( uiRows - 1 );
}
else
hb_retni( hb_gtMaxRow() );
hb_retni( hb_gtMaxRow() );
}
HB_FUNC( MAXCOL ) /* Return the maximum screen column number (zero origin) */
HB_FUNC( MAXCOL ) /* Return the maximum screen/"viewport" column number (zero origin) */
{
/* See the note about MaxRow(.t.) above */
if( ISLOG( 1 ) && hb_parl( 1 ) )
{
USHORT uiRows, uiCols;
hb_gtScrDim( &uiRows, &uiCols );
hb_retni( uiCols - 1 );
}
else
hb_retni( hb_gtMaxCol() );
hb_retni( hb_gtMaxCol() );
}

View File

@@ -54,7 +54,7 @@
#include "hbapiitm.h"
#include "hbapifs.h"
/* NOTE: CA-Clipper has 64K (65516 bytes exactly) limit on read, in Harbour
/* NOTE: CA-Cl*pper has 64K (65516 bytes exactly) limit on read, in Harbour
this limit is extended, so we are not *strictly* compatible here.
[vszakats] */
@@ -123,8 +123,8 @@ static BOOL hb_memowrit( BOOL bWriteEOF )
bRetVal = ( hb_fsWriteLarge( fhnd, ( BYTE * ) hb_itemGetCPtr( pString ), ulSize ) == ulSize );
/* NOTE: CA-Clipper will add the EOF even if the write failed. [vszakats] */
/* NOTE: CA-Clipper will not return .F. when the EOF could not be written. [vszakats] */
/* NOTE: CA-Cl*pper will add the EOF even if the write failed. [vszakats] */
/* NOTE: CA-Cl*pper will not return .F. when the EOF could not be written. [vszakats] */
#if ! defined(OS_UNIX_COMPATIBLE)
if( bWriteEOF ) /* if true, then write EOF */
{

View File

@@ -87,7 +87,7 @@ HB_FUNC( MOD )
{
PHB_ITEM pResult = hb_errRT_BASE_Subst( EG_ZERODIV, 1341, NULL, "%", HB_ERR_ARGS_BASEPARAMS );
/* In CA-Clipper MOD() function ignores substitution result
/* In CA-Cl*pper MOD() function ignores substitution result
* and return original numeric item keeping its internal
* representation: integer or double, size and number of
* decimal places, it can be seen in code like:

View File

@@ -111,7 +111,7 @@ HB_FUNC( FREAD )
{
ulRead = hb_parnl( 3 );
/* NOTE: CA-Clipper determines the maximum size by calling _parcsiz()
/* NOTE: CA-Cl*pper determines the maximum size by calling _parcsiz()
instead of _parclen(), this means that the maximum read length
will be one more than the length of the passed buffer, because
the terminating zero could be used if needed. [vszakats] */

View File

@@ -70,7 +70,7 @@ CREATE CLASS PUSHBUTTON FUNCTION HBPushButton
EXPORTED:
VAR cargo /* NOTE: CA-Clipper 5.3 has a bug, where this var cannot be assigned NIL. */
VAR cargo /* NOTE: CA-Cl*pper 5.3 has a bug, where this var cannot be assigned NIL. */
VAR bmpXOff INIT -1 /* NOTE: Fully compatible behaviour not implemented. */
VAR bmpYOff INIT -1 /* NOTE: Fully compatible behaviour not implemented. */

View File

@@ -69,7 +69,7 @@ CREATE CLASS RADIOBUTTN FUNCTION HBRadioButton
EXPORTED:
VAR cargo /* NOTE: CA-Clipper 5.3 has a bug, where this var is filled with NIL everytime its value is read ( cargo := o:cargo ). */
VAR cargo /* NOTE: CA-Cl*pper 5.3 has a bug, where this var is filled with NIL everytime its value is read ( cargo := o:cargo ). */
METHOD display()
METHOD hitTest( nMRow, nMCol )

View File

@@ -0,0 +1,78 @@
/*
* $Id$
*/
/*
* Harbour Project source code:
* hb_SCRMAXROW(), hb_SCRMAXCOL() functions
*
* Copyright 2006 Przemyslaw Czerpak <druzus / at / priv.onet.pl>
* www - http://www.harbour-project.org
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2, or (at your option)
* any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this software; see the file COPYING. If not, write to
* the Free Software Foundation, Inc., 59 Temple Place, Suite 330,
* Boston, MA 02111-1307 USA (or visit the web site http://www.gnu.org/).
*
* As a special exception, the Harbour Project gives permission for
* additional uses of the text contained in its release of Harbour.
*
* The exception is that, if you link the Harbour libraries with other
* files to produce an executable, this does not by itself cause the
* resulting executable to be covered by the GNU General Public License.
* Your use of that executable is in no way restricted on account of
* linking the Harbour library code into it.
*
* This exception does not however invalidate any other reasons why
* the executable file might be covered by the GNU General Public License.
*
* This exception applies only to the code released by the Harbour
* Project under the name Harbour. If you copy code from other
* Harbour Project or Free Software Foundation releases into a copy of
* Harbour, as the General Public License permits, the exception does
* not apply to the code that you add in this way. To avoid misleading
* anyone as to the status of such modified files, you must delete
* this exception notice from them.
*
* If you write modifications of your own for Harbour, it is your choice
* whether to permit this exception to apply to your modifications.
* If you do not wish that, delete this exception notice.
*
*/
#include "hbapi.h"
#include "hbapigt.h"
/*
* Normally it gives exactly the same result in all standard GT drivers
* as MaxRow()/MaxCol(). The difference can appear in some extended
* GT drivers which have additional functionality, f.e. CTW GT which
* is upper level GT and add CTIII Window support. When it's activated
* then MaxRow() will return current window max row and hb_ScrMaxRow() real
* screen (window 0) max row what is the exact behavior of MaxRow()
* in CT3, [druzus]
*/
HB_FUNC( HB_SCRMAXROW ) /* Return the maximum screen row number (zero origin) */
{
USHORT uiRows, uiCols;
hb_gtScrDim( &uiRows, &uiCols );
hb_retni( uiRows - 1 );
}
HB_FUNC( HB_SCRMAXCOL ) /* Return the maximum screen column number (zero origin) */
{
USHORT uiRows, uiCols;
hb_gtScrDim( &uiRows, &uiCols );
hb_retni( uiCols - 1 );
}

View File

@@ -1320,7 +1320,7 @@ METHOD doConfigure() CLASS TBROWSE
nColCount := Len( ::columns )
ASize( ::aColData, nColCount )
FOR EACH oCol, aCol IN ::columns, ::aColData
/* CA-Clipper always evaluates column block even if column is
/* CA-Cl*pper always evaluates column block even if column is
* hidden by setting :width to 0. [druzus]
*/
xValue := Eval( oCol:block )
@@ -1482,7 +1482,7 @@ METHOD doConfigure() CLASS TBROWSE
::lFrames := .T.
::lRefresh := .T.
/* CA-Clipper update visible columns here but without
/* CA-Cl*pper update visible columns here but without
* colPos repositioning. [druzus]
*/
_SETVISIBLE( ::aColData, _TBR_COORD( ::n_Right ) - _TBR_COORD( ::n_Left ) + 1, ;
@@ -1776,7 +1776,7 @@ METHOD setVisible() CLASS TBROWSE
#if 0
/* Always try to locate visible column.
* CA-Clipper does not have such condition. [druzus]
* CA-Cl*pper does not have such condition. [druzus]
*/
IF ::nColPos >= 1 .AND. ::aColData[ ::nColPos ][ _TBCI_CELLWIDTH ] <= 0
nCol := _PREVCOLUMN( ::aColData, ::nColPos - 1 )
@@ -1930,7 +1930,7 @@ METHOD freeze( nColumns ) CLASS TBROWSE
::nFrozen := nCols
::lFrames := .T.
::nLastPos := 0
/* CA-Clipper update visible columns here but without
/* CA-Cl*pper update visible columns here but without
* colPos repositioning. [druzus]
*/
_SETVISIBLE( ::aColData, _TBR_COORD( ::n_Right ) - _TBR_COORD( ::n_Left ) + 1, ;

View File

@@ -92,12 +92,12 @@ CREATE CLASS Get
VAR exitState /* 09. */
VAR reader /* 10. */
#ifdef HB_COMPAT_C53
VAR oControl PROTECTED /* 11. CA-Clipper 5.3 only. */
VAR cCaption PROTECTED INIT "" /* 12. CA-Clipper 5.3 only. */
VAR nCapCol PROTECTED INIT 0 /* 13. CA-Clipper 5.3 only. */
VAR nCapRow PROTECTED INIT 0 /* 14. CA-Clipper 5.3 only. */
VAR cMessage PROTECTED INIT "" /* 15. CA-Clipper 5.3 only. */
VAR nDispLen PROTECTED /* 16. CA-Clipper 5.3 places it here. */
VAR oControl PROTECTED /* 11. CA-Cl*pper 5.3 only. */
VAR cCaption PROTECTED INIT "" /* 12. CA-Cl*pper 5.3 only. */
VAR nCapCol PROTECTED INIT 0 /* 13. CA-Cl*pper 5.3 only. */
VAR nCapRow PROTECTED INIT 0 /* 14. CA-Cl*pper 5.3 only. */
VAR cMessage PROTECTED INIT "" /* 15. CA-Cl*pper 5.3 only. */
VAR nDispLen PROTECTED /* 16. CA-Cl*pper 5.3 places it here. */
#endif
VAR cType PROTECTED /* +1. Only accessible in CA-Cl*pper when ::hasFocus == .T. In CA-Cl*pper the field may contain random chars after the first one, which is the type. */
VAR cBuffer PROTECTED /* +2. Only accessible in CA-Cl*pper when ::hasFocus == .T. */

View File

@@ -446,7 +446,7 @@ METHOD right( nRight ) CLASS TOPBARMENU
METHOD row( nRow ) CLASS TOPBARMENU
IF nRow != NIL
/* NOTE: CA-Clipper 5.3 has a bug, where it would show "TOP" in case of an error. */
/* NOTE: CA-Cl*pper 5.3 has a bug, where it would show "TOP" in case of an error. */
::nRow := __eInstVar53( Self, "ROW", nRow, "N", 1001 )
ENDIF

View File

@@ -168,7 +168,7 @@ static char * hb_cmdargGet( const char * pszName, BOOL bRetValue )
/* Step through all envvar switches. */
/* NOTE: CA-Clipper doesn't need the switches to be separated by any
/* NOTE: CA-Cl*pper doesn't need the switches to be separated by any
chars at all, Harbour is more strict/standard in this respect,
it requires the switches to be separated. */
@@ -338,7 +338,7 @@ ULONG hb_cmdargProcessVM( int *pCancelKey, int *pCancelKeyEx )
if( hb_cmdargCheck( "BUILD" ) )
hb_verBuildInfo();
if( (cFlags = hb_cmdargString( "FLAGS" )) != NULL )
if( ( cFlags = hb_cmdargString( "FLAGS" ) ) != NULL )
{
int i = 0;
while( cFlags[ i ] )
@@ -371,7 +371,7 @@ ULONG hb_cmdargProcessVM( int *pCancelKey, int *pCancelKeyEx )
hb_xfree( cFlags );
}
if( (cFlags=hb_cmdargString( "CANCEL" )) != NULL )
if( ( cFlags = hb_cmdargString( "CANCEL" ) ) != NULL )
{
int iVal = atoi( cFlags );
if( iVal )
@@ -379,7 +379,7 @@ ULONG hb_cmdargProcessVM( int *pCancelKey, int *pCancelKeyEx )
hb_xfree( cFlags );
}
if( (cFlags=hb_cmdargString( "CANCELEX" )) != NULL )
if( ( cFlags = hb_cmdargString( "CANCELEX" ) ) != NULL )
{
int iVal = atoi( cFlags );
if( iVal )

View File

@@ -73,7 +73,7 @@
HB_STACK hb_stack;
static HB_SYMB s_initSymbol = { "hb_stackInit", {HB_FS_STATIC}, {NULL}, NULL };
static HB_SYMB s_initSymbol = { "hb_stackInit", { HB_FS_STATIC }, { NULL }, NULL };
/* ------------------------------- */
@@ -251,7 +251,6 @@ HB_ITEM_PTR hb_stackNewFrame( PHB_STACK_STATE pStack, USHORT uiParams )
if( ! HB_IS_SYMBOL( pItem ) )
{
/* QUESTION: Is this call needed ? [vszakats] */
hb_stackDispLocal();
hb_errInternal( HB_EI_VMNOTSYMBOL, NULL, "hb_vmDo()", NULL );
}

View File

@@ -88,15 +88,15 @@ BOOL hb_evalNew( PEVALINFO pEvalInfo, PHB_ITEM pItem )
/* NOTE: CA-Cl*pper is buggy and will not check if more parameters are
added than the maximum (9). [vszakats] */
/* NOTE: CA-Cl*pper NG suggest that the Items passed as parameters should/may
/* NOTE: CA-Cl*pper NG suggests that the Items passed as parameters should/may
be released by the programmer explicitly. But in fact hb_evalRelease()
will automatically release all of them. The sample programs in the
will automatically release them all. The sample programs in the
NG are doing it that way. Releasing the parameters explicitly in
Harbour will cause an internal error, while it will be silently
ignored (?) in CA-Cl*pper. This is due to the different internal
handling of the Items, but IIRC it causes leak in CA-Clipper. All in
handling of the Items, but IIRC it causes leak in CA-Cl*pper. All in
all, don't release the eval parameter Items explicitly to make both
Harbour and CA-Clipper happy. [vszakats] */
Harbour and CA-Cl*pper happy. [vszakats] */
BOOL hb_evalPutParam( PEVALINFO pEvalInfo, PHB_ITEM pItem )
{
@@ -153,7 +153,7 @@ PHB_ITEM hb_evalLaunch( PEVALINFO pEvalInfo )
return pResult;
}
/* NOTE: CA-Clipper NG states that hb_evalLaunch() must be called at least
/* NOTE: CA-Cl*pper NG states that hb_evalLaunch() must be called at least
once and only once before calling hb_evalRelease(). Harbour doesn't
have these requirements. [vszakats] */

View File

@@ -184,7 +184,7 @@ HB_EXPORT char * hb_parc( int iParam, ... )
}
}
return ( char * ) 0;
return ( char * ) NULL;
}
HB_EXPORT char * hb_parcx( int iParam, ... )

View File

@@ -898,7 +898,7 @@ ULONG hb_xquery( USHORT uiMode )
#endif
break;
case HB_MEM_BLOCKS: /* Harbour extension (Memory blocks used) */
case HB_MEM_BLOCKS: /* Harbour extension (Memory blocks used) */
#ifdef HB_FM_STATISTICS
ulResult = s_lMemoryBlocks;
#else

View File

@@ -448,7 +448,7 @@ HB_EXPORT void hb_vmInit( BOOL bStartMainProc )
hb_vmDoModuleInitFunctions(); /* process AtInit registered functions */
hb_vmDoInitFunctions(); /* process defined INIT functions */
/* This is undocumented CA-Clipper, if there's a function called _APPMAIN
/* This is undocumented CA-Cl*pper, if there's a function called _APPMAIN
it will be executed first. [vszakats] */
{
PHB_DYNS pDynSym = hb_dynsymFind( "_APPMAIN" );

View File

@@ -265,7 +265,7 @@ HB_EXPORT PHB_ITEM hb_itemPutCL( PHB_ITEM pItem, const char * szText, ULONG ulLe
else
pItem = hb_itemNew( NULL );
/* NOTE: CA-Clipper seems to be buggy here, it will return ulLen bytes of
/* NOTE: CA-Cl*pper seems to be buggy here, it will return ulLen bytes of
trash if the szText buffer is NULL, at least with hb_retclen().
[vszakats] */

View File

@@ -59,26 +59,24 @@ HB_FUNC_EXTERN( __MVXRELEASE );
HB_FUNC_EXTERN( __MVSAVE );
HB_FUNC_EXTERN( __MVRESTORE );
/* NOTE: Undocumented Clipper internal function */
/* NOTE: Undocumented Clipper internal function. */
#ifdef HB_C52_UNDOC
HB_FUNC( __QQPUB )
{
if( hb_pcount() == 1 )
/* In Clipper __QQPUB function does not check number of parameters
or parameter type - just simply takes directly the top item from
VM stack */
if( hb_pcount() == 1 && hb_param( 1, HB_IT_STRING ) )
{
/* In Clipper __QQPUB function does not check number of parameters
or parameter type - just simply takes directly the top item from
VM stack */
PHB_ITEM pItem = hb_param( 1, HB_IT_STRING );
if( pItem )
HB_FUNC_EXEC( __MVPUBLIC );
HB_FUNC_EXEC( __MVPUBLIC );
}
}
#endif
/* CA-Clipper 5.2e compatibility functions. */
/* CA-Cl*pper 5.2e compatibility functions. */
HB_FUNC( __MCLEAR )
{

View File

@@ -62,7 +62,7 @@
/* NOTE: Guard all Harbour extensions with __HARBOUR__ #ifdefs */
/* NOTE: Use ":className()" instead of ":className" to make your code work
with Xbase++. Xbase++ seem to take differenciate between the
object method and object variable form. In CA-Clipper and Harbour
object method and object variable form. In CA-Cl*pper and Harbour
both syntax is accepted. Same goes for ":Eval()" */
/* TODO: Add checks for string parameters with embedded NUL character */
@@ -422,8 +422,8 @@ STATIC FUNCTION TEST_END()
IF s_nFail != 0
IF "CLIPPER (R)" $ Upper( Version() )
OutMsg( s_nFhnd, "WARNING ! Failures detected using CA-Clipper." + HB_OSNewLine() +;
"Please fix those expected results which are not bugs in CA-Clipper itself." + HB_OSNewLine() )
OutMsg( s_nFhnd, "WARNING ! Failures detected using CA-Cl*pper." + HB_OSNewLine() +;
"Please fix those expected results which are not bugs in CA-Cl*pper itself." + HB_OSNewLine() )
ELSE
OutMsg( s_nFhnd, "WARNING ! Failures detected" + HB_OSNewLine() )
ENDIF

View File

@@ -408,7 +408,7 @@ FUNCTION Main_MISC()
TEST_LINE( NationMsg(11) , " - " )
TEST_LINE( NationMsg(12) , "Y/N" )
TEST_LINE( NationMsg(13) , "INVALID EXPRESSION" )
TEST_LINE( NationMsg(14) , "" ) /* Bug in CA-Clipper 5.3a/b, it will return "ATSORT v1.3i x19 06/Mar/95" */
TEST_LINE( NationMsg(14) , "" ) /* Bug in CA-Cl*pper 5.3a/b, it will return "ATSORT v1.3i x19 06/Mar/95" */
#ifndef __CLIPPER__ /* Causes GPF in CA-Cl*pper (5.2e International, 5.3b) */
TEST_LINE( NationMsg(200) , "" ) /* Bug in CA-Cl*pper, it will return "74?" or other trash */
#endif

View File

@@ -387,7 +387,7 @@ FUNCTION Main_STR()
/* NOTE: It seems like CA-Cl*pper 5.x is not aware of the BREAK return value of
the error handler, so the error is thrown, but we can't catch it.
This bug is fixed in CA-Clipper 5.3 [vszakats] */
This bug is fixed in CA-Cl*pper 5.3 [vszakats] */
#ifndef __CLIPPER__
#ifndef __XPP__
TEST_LINE( StrTran() , "E BASE 1126 Argument error STRTRAN F:S" ) /* CA-Cl*pper bug, it will exit on this */