2012-11-04 17:48 UTC+0100 Viktor Szakats (harbour syenar.net)

* contrib/hbct/*.[c|h]
  * contrib/hbmemio/*.[c|h]
  * contrib/hbnetio/*.[c|h]
  * contrib/rddads/*.[c|h]
  * contrib/rddbm/*.[c|h]
    * cherry picked uncrustify formattings

  * contrib/rddsql/*.[c|h]
  * contrib/sddfb/*.[c|h]
  * contrib/sddmy/*.[c|h]
  * contrib/sddodbc/*.[c|h]
  * contrib/sddpg/*.[c|h]
    * uncrustified automatically (rerun with new settings)

  * contrib/sddoci/*.[c|h]
  * contrib/sddsqlt3/*.[c|h]
    * uncrustified automatically

  ; most contrib C code is now automatically formatted.
    exceptions:
      hbct, hbmemio, hbnetio, rddads, rddbm, hbwin, xhb,
      hbzebra, hbexpat, hbssl, gtwvg GT driver code.
This commit is contained in:
Viktor Szakats
2012-11-04 17:02:40 +00:00
parent 999ad6ab37
commit 475dedda9e
68 changed files with 2222 additions and 2130 deletions

View File

@@ -16,6 +16,30 @@
The license applies to all entries newer than 2009-04-28.
*/
2012-11-04 17:48 UTC+0100 Viktor Szakats (harbour syenar.net)
* contrib/hbct/*.[c|h]
* contrib/hbmemio/*.[c|h]
* contrib/hbnetio/*.[c|h]
* contrib/rddads/*.[c|h]
* contrib/rddbm/*.[c|h]
* cherry picked uncrustify formattings
* contrib/rddsql/*.[c|h]
* contrib/sddfb/*.[c|h]
* contrib/sddmy/*.[c|h]
* contrib/sddodbc/*.[c|h]
* contrib/sddpg/*.[c|h]
* uncrustified automatically (rerun with new settings)
* contrib/sddoci/*.[c|h]
* contrib/sddsqlt3/*.[c|h]
* uncrustified automatically
; most contrib C code is now automatically formatted.
exceptions:
hbct, hbmemio, hbnetio, rddads, rddbm, hbwin, xhb,
hbzebra, hbexpat, hbssl, gtwvg GT driver code.
2012-11-04 15:34 UTC+0100 Viktor Szakats (harbour syenar.net)
* contrib/hbnf/tests/tbwhile.prg
! fixed for case-sensitive file systems

View File

@@ -57,8 +57,8 @@
#include "ct.h"
/* defines */
#define DO_ASCPOS_ASCPOS 0
#define DO_ASCPOS_VALPOS 1
#define DO_ASCPOS_ASCPOS 0
#define DO_ASCPOS_VALPOS 1
/* helper function */
static void do_ascpos( int iSwitch )

View File

@@ -58,9 +58,9 @@
#include "ct.h"
#define DO_ATNUM_AFTERATNUM 0
#define DO_ATNUM_BEFORATNUM 1
#define DO_ATNUM_ATNUM 2
#define DO_ATNUM_AFTERATNUM 0
#define DO_ATNUM_BEFORATNUM 1
#define DO_ATNUM_ATNUM 2
/* helper function */
static void do_atnum( int iSwitch )

View File

@@ -80,7 +80,7 @@ HB_BOOL ct_numParam( int iParam, HB_MAXINT * plNum )
*plNum = ( *plNum << 4 ) | c;
iParam = 0;
}
if( !iParam )
if( ! iParam )
return HB_TRUE;
}
else if( HB_ISNUM( iParam ) )

View File

@@ -59,8 +59,8 @@
#include "ct.h"
#define DO_CHAREVOD_CHAREVEN 0
#define DO_CHAREVOD_CHARODD 1
#define DO_CHAREVOD_CHAREVEN 0
#define DO_CHAREVOD_CHARODD 1
/* helper function */
static void do_charevod( int iSwitch )

View File

@@ -57,8 +57,8 @@
#include "ct.h"
/* defines */
#define DO_CHARONE_CHARONE 0
#define DO_CHARONE_WORDONE 1
#define DO_CHARONE_CHARONE 0
#define DO_CHARONE_WORDONE 1
/* helper function for the *one functions */
static void do_charone( int iSwitch )
@@ -107,8 +107,8 @@ static void do_charone( int iSwitch )
pcRet[ sRetStrLen++ ] = cCurrent;
}
else if( pcDeleteSet != NULL &&
!ct_at_exact_forward( pcDeleteSet, sDeleteSetLen,
pcSub, 1, NULL ) )
! ct_at_exact_forward( pcDeleteSet, sDeleteSetLen,
pcSub, 1, NULL ) )
{
pcRet[ sRetStrLen++ ] = cCurrent;
}
@@ -139,7 +139,7 @@ static void do_charone( int iSwitch )
for( pcSub = pcString + 2; pcSub < pcString + sStrLen - 1; pcSub += 2 )
{
if( !( pcSub[ 0 ] == cCurrent1 && pcSub[ 1 ] == cCurrent2 ) )
if( ! ( pcSub[ 0 ] == cCurrent1 && pcSub[ 1 ] == cCurrent2 ) )
{
cCurrent1 = pcSub[ 0 ];
cCurrent2 = pcSub[ 1 ];

View File

@@ -59,10 +59,10 @@
#include "ct.h"
/* defines */
#define DO_CHARONLY_CHARONLY 0
#define DO_CHARONLY_WORDONLY 1
#define DO_CHARONLY_CHARREM 2
#define DO_CHARONLY_WORDREM 3
#define DO_CHARONLY_CHARONLY 0
#define DO_CHARONLY_WORDONLY 1
#define DO_CHARONLY_CHARREM 2
#define DO_CHARONLY_WORDREM 3
/* helper function for the *one functions */
static void do_charonly( int iSwitch )

View File

@@ -173,7 +173,7 @@ void ct_charop( int iMode )
/* ADD */
case CT_CHAROP_CHARADD:
{
if( HB_ISCHAR( 2 ) )
{
const char * pucString2 = hb_parc( 2 );
@@ -195,11 +195,10 @@ void ct_charop( int iMode )
hb_xmemcpy( pucResult, pucString, sStrLen );
}
break;
}
/* SUB */
case CT_CHAROP_CHARSUB:
{
if( HB_ISCHAR( 2 ) )
{
const char * pucString2 = hb_parc( 2 );
@@ -221,11 +220,10 @@ void ct_charop( int iMode )
hb_xmemcpy( pucResult, pucString, sStrLen );
}
break;
}
/* AND */
case CT_CHAROP_CHARAND:
{
if( HB_ISCHAR( 2 ) )
{
const char * pucString2 = hb_parc( 2 );
@@ -246,11 +244,10 @@ void ct_charop( int iMode )
hb_xmemcpy( pucResult, pucString, sStrLen );
}
break;
}
/* OR */
case CT_CHAROP_CHAROR:
{
if( HB_ISCHAR( 2 ) )
{
const char * pucString2 = hb_parc( 2 );
@@ -271,11 +268,10 @@ void ct_charop( int iMode )
hb_xmemcpy( pucResult, pucString, sStrLen );
}
break;
}
/* XOR */
case CT_CHAROP_CHARXOR:
{
if( HB_ISCHAR( 2 ) )
{
const char * pucString2 = hb_parc( 2 );
@@ -296,7 +292,6 @@ void ct_charop( int iMode )
hb_xmemcpy( pucResult, pucString, sStrLen );
}
break;
}
} /* endswitch( iMode ) */
if( HB_ISBYREF( 1 ) )

View File

@@ -57,9 +57,9 @@
#include "ct.h"
/* defines */
#define DO_CHARSWAP_CHARSWAP 0
#define DO_CHARSWAP_WORDSWAP 1
#define DO_CHARSWAP_WORDSWAP_CHARSWAP 2
#define DO_CHARSWAP_CHARSWAP 0
#define DO_CHARSWAP_WORDSWAP 1
#define DO_CHARSWAP_WORDSWAP_CHARSWAP 2
/* helper function for the charswap and wordswap functions */
static void do_charswap( int iSwitch )

View File

@@ -55,8 +55,8 @@
#include "ct.h"
/* defines */
#define DO_COUNT_COUNTLEFT 0
#define DO_COUNT_COUNTRIGHT 1
#define DO_COUNT_COUNTLEFT 0
#define DO_COUNT_COUNTRIGHT 1
/* helper function for the countxxx functions */
static void do_count( int iSwitch )

View File

@@ -54,7 +54,7 @@
#ifndef _CT_H
#define _CT_H 1
#define _CT_H 1
#include "hbapi.h"
#include "hbapiitm.h"
@@ -67,7 +67,7 @@
#include "cterror.ch"
#define CT_SUBSYSTEM "CT"
#define CT_SUBSYSTEM "CT"
#define CT_ARGERR_WHOCARES ES_WHOCARES
#define CT_ARGERR_WARNING ES_WARNING
@@ -103,10 +103,10 @@ extern HB_BOOL ct_numParam( int iParam, HB_MAXINT * plNum );
/* CT subsystem error throwing functions */
extern HB_USHORT ct_error( HB_USHORT uiSeverity, HB_ERRCODE ulGenCode, HB_ERRCODE ulSubCode,
const char *szDescription, const char *szOperation, HB_ERRCODE uiOsCode, HB_USHORT uiFlags, HB_ULONG uiArgCount, ... );
const char * szDescription, const char * szOperation, HB_ERRCODE uiOsCode, HB_USHORT uiFlags, HB_ULONG uiArgCount, ... );
extern PHB_ITEM ct_error_subst( HB_USHORT uiSeverity, HB_ERRCODE ulGenCode, HB_ERRCODE ulSubCode,
const char *szDescription, const char *szOperation, HB_ERRCODE uiOsCode, HB_USHORT uiFlags, HB_ULONG uiArgCount, ... );
const char * szDescription, const char * szOperation, HB_ERRCODE uiOsCode, HB_USHORT uiFlags, HB_ULONG uiArgCount, ... );
/* set argument error behaviour */
extern void ct_setargerrormode( int iMode );

View File

@@ -71,7 +71,7 @@ HB_USHORT ct_error( HB_USHORT uiSeverity, HB_ERRCODE errGenCode, HB_ERRCODE errS
HB_ULONG ulArgPos;
HB_TRACE( HB_TR_DEBUG, ( "ct_error(%hu, %d, %d, %s, %s, %d, %hu, %lu)",
uiSeverity, errGenCode, errSubCode, szDescription, szOperation, errOsCode, uiFlags, ulArgCount ) );
uiSeverity, errGenCode, errSubCode, szDescription, szOperation, errOsCode, uiFlags, ulArgCount ) );
pError = hb_errRT_New( uiSeverity, CT_SUBSYSTEM, errGenCode, errSubCode, szDescription, szOperation, errOsCode, uiFlags );
@@ -138,7 +138,7 @@ PHB_ITEM ct_error_subst( HB_USHORT uiSeverity, HB_ERRCODE errGenCode, HB_ERRCODE
HB_ULONG ulArgPos;
HB_TRACE( HB_TR_DEBUG, ( "ct_error_subst(%hu, %d, %d, %s, %s, %d, %hu, %lu)",
uiSeverity, errGenCode, errSubCode, szDescription, szOperation, errOsCode, uiFlags, ulArgCount ) );
uiSeverity, errGenCode, errSubCode, szDescription, szOperation, errOsCode, uiFlags, ulArgCount ) );
pError = hb_errRT_New_Subst( uiSeverity, CT_SUBSYSTEM, errGenCode, errSubCode, szDescription, szOperation, errOsCode, uiFlags );

View File

@@ -387,6 +387,7 @@ HB_FUNC( COM_INIT )
HB_FUNC( COM_OPEN )
{
int iPort = hb_parni( 1 );
/* TODO: add support for <nBufferIn> */
/* TODO: add support for <nBufferOut> */
/* TODO: add support for <lTrapMode> */

View File

@@ -92,7 +92,7 @@ HB_FUNC( COM_CRC )
HB_MAXUINT nPolynomial = ( HB_MAXUINT ) hb_parnint( 3 );
if( nPolynomial == 0 )
nPolynomial = 0x11021; /* CRC_16_X25 */
nPolynomial = 0x11021; /* CRC_16_X25 */
/* NOTE: warning this function is not bug compatible with CT3.
* It fixes few problems in original CT3 implementation
@@ -111,6 +111,7 @@ HB_FUNC( COM_CRC )
static char s_xmoblock_sum( const char * szData, HB_SIZE nLen )
{
unsigned char uc = 0;
while( nLen-- )
uc += ( unsigned char ) *szData++;
return ( char ) uc;

View File

@@ -58,9 +58,9 @@
HB_EXTERN_BEGIN
#define CT_PI 3.14159265358979323846
#define CT_PI_2 1.57079632679489661923
#define CT_PI_RAD 0.0174532925199432957692 /* 3.14159265358979323846 / 180.0 */
#define CT_PI 3.14159265358979323846
#define CT_PI_2 1.57079632679489661923
#define CT_PI_RAD 0.0174532925199432957692 /* 3.14159265358979323846 / 180.0 */
/* initialization */
extern int ct_math_init( void );

View File

@@ -194,9 +194,9 @@ HB_FUNC( LOG10 )
/* math exception is up to the Harbour function, so do this as Clipper compatible as possible */
switch( hb_exc.type )
{
case HB_MATH_ERR_SING: /* argument to log was 0.0 */
case HB_MATH_ERR_DOMAIN: /* argument to log was < 0.0 */
hb_retndlen( -HUGE_VAL, -1, -1 ); /* return -infinity */
case HB_MATH_ERR_SING: /* argument to log was 0.0 */
case HB_MATH_ERR_DOMAIN: /* argument to log was < 0.0 */
hb_retndlen( -HUGE_VAL, -1, -1 ); /* return -infinity */
break;
default:

View File

@@ -133,7 +133,7 @@ HB_FUNC( NETPRINTER )
#if defined( HB_OS_WIN ) && ! defined( HB_OS_WIN_CE )
const char * cPrn = hb_setGetCPtr( HB_SET_PRINTFILE ); /* query default local printer port. */
if( !cPrn || !*cPrn || hb_stricmp( cPrn, "PRN" ) == 0 )
if( ! cPrn || ! *cPrn || hb_stricmp( cPrn, "PRN" ) == 0 )
cPrn = "LPT1";
hb_retl( hb_IsNetShared( cPrn ) );
#else

View File

@@ -55,8 +55,8 @@
#include "ct.h"
/* defines */
#define DO_PAD_PADLEFT 0
#define DO_PAD_PADRIGHT 1
#define DO_PAD_PADLEFT 0
#define DO_PAD_PADRIGHT 1
/* helper function for the pad functions */
static void do_pad( int iSwitch )

View File

@@ -54,6 +54,6 @@
#ifndef _CTSET_H
#define _CTSET_H 1
#define _CTSET_H 1
#endif

View File

@@ -352,8 +352,8 @@ HB_FUNC( CSETATMUPA )
* SETATLIKE() stuff
*/
static int s_iAtLikeMode = 0; /* TODO: make this tread safe */
static char s_cAtLikeChar = '?'; /* TODO: make this tread safe */
static int s_iAtLikeMode = 0; /* TODO: make this tread safe */
static char s_cAtLikeChar = '?'; /* TODO: make this tread safe */
void ct_setatlike( int iNewMode )
{

View File

@@ -54,31 +54,31 @@
#ifndef _CTSTR_H
#define _CTSTR_H 1
#define _CTSTR_H 1
HB_EXTERN_BEGIN
extern int ct_str_init( void );
extern int ct_str_exit( void );
extern const char *ct_at_exact_forward( const char *pcString, HB_SIZE sStrLen,
const char *pcMatch, HB_SIZE sMatchLen,
HB_SIZE *psMatchStrLen );
extern const char *ct_at_exact_backward( const char *pcString, HB_SIZE sStrLen,
const char *pcMatch, HB_SIZE sMatchLen,
HB_SIZE *psMatchStrLen );
extern const char *ct_at_wildcard_forward( const char *pcString, HB_SIZE sStrLen,
const char *pcMatch, HB_SIZE sMatchLen,
char cWildCard, HB_SIZE *psMatchStrLen );
extern const char *ct_at_wildcard_backward( const char *pcString, HB_SIZE sStrLen,
const char *pcMatch, HB_SIZE sMatchLen,
char cWildCard, HB_SIZE *psMatchStrLen );
extern const char *ct_at_charset_forward( const char *pcString, HB_SIZE sStrLen,
const char *pcCharSet, HB_SIZE sCharSetLen,
HB_SIZE *psMatchedCharPos );
extern const char *ct_at_charset_backward( const char *pcString, HB_SIZE sStrLen,
const char *pcCharSet, HB_SIZE sCharSetLen,
HB_SIZE *psMatchedCharPos );
extern const char * ct_at_exact_forward( const char * pcString, HB_SIZE sStrLen,
const char * pcMatch, HB_SIZE sMatchLen,
HB_SIZE * psMatchStrLen );
extern const char * ct_at_exact_backward( const char * pcString, HB_SIZE sStrLen,
const char * pcMatch, HB_SIZE sMatchLen,
HB_SIZE * psMatchStrLen );
extern const char * ct_at_wildcard_forward( const char * pcString, HB_SIZE sStrLen,
const char * pcMatch, HB_SIZE sMatchLen,
char cWildCard, HB_SIZE * psMatchStrLen );
extern const char * ct_at_wildcard_backward( const char * pcString, HB_SIZE sStrLen,
const char * pcMatch, HB_SIZE sMatchLen,
char cWildCard, HB_SIZE * psMatchStrLen );
extern const char * ct_at_charset_forward( const char * pcString, HB_SIZE sStrLen,
const char * pcCharSet, HB_SIZE sCharSetLen,
HB_SIZE * psMatchedCharPos );
extern const char * ct_at_charset_backward( const char * pcString, HB_SIZE sStrLen,
const char * pcCharSet, HB_SIZE sCharSetLen,
HB_SIZE * psMatchedCharPos );
extern void ct_setref( int iNewSwitch );
extern int ct_getref( void );

View File

@@ -59,7 +59,7 @@
#include "ctstrfil.h"
static HB_FATTR s_nFileAttr = HB_FA_NORMAL;
static HB_BOOL s_bSafety = HB_FALSE;
static HB_BOOL s_bSafety = HB_FALSE;
void ct_setfcreate( HB_FATTR nFileAttr )
{
@@ -114,7 +114,7 @@ static HB_SIZE ct_StrFile( const char * pFileName, const char * pcStr, HB_SIZE n
hFile = hb_fsOpen( pFileName, FO_READWRITE );
bOpen = HB_TRUE;
}
else if( !bFile || !ct_getsafety() )
else if( ! bFile || ! ct_getsafety() )
hFile = hb_fsCreate( pFileName, ct_getfcreate() );
else
hFile = FS_ERROR;

View File

@@ -101,14 +101,14 @@ HB_FUNC( SETCLEARB )
{
int iChar = hb_parni( 1 );
PHB_CODEPAGE cdp = hb_vmCDP();
if( !HB_CDP_ISCHARUNI( cdp ) )
if( ! HB_CDP_ISCHARUNI( cdp ) )
iChar = hb_cdpGetU16( cdp, ( HB_UCHAR ) iChar );
usNew = ( HB_USHORT ) iChar;
}
else if( HB_ISCHAR( 1 ) )
usNew = hb_cdpTextGetU16( hb_vmCDP(), hb_parc( 1 ), hb_parclen( 1 ) );
else
usNew = ' '; /* CT uses 255 => U+00A0 in CP437 */
usNew = ' '; /* CT uses 255 => U+00A0 in CP437 */
hb_gtSetClearChar( usNew );
@@ -120,7 +120,7 @@ HB_FUNC( GETCLEARB )
int iChar = hb_gtGetClearChar();
PHB_CODEPAGE cdp = hb_vmCDP();
if( !HB_CDP_ISCHARUNI( cdp ) )
if( ! HB_CDP_ISCHARUNI( cdp ) )
{
HB_UCHAR uc = hb_cdpGetUC( cdp, ( HB_WCHAR ) iChar, 0 );
if( uc )
@@ -203,25 +203,26 @@ HB_FUNC( WNUM )
HB_FUNC( WBOX )
{
static const HB_WCHAR s_pWBoxFrames[ 16 ][ 9 ] = {
HB_B_DOUBLE_W, /* 0 WB_DOUBLE_CLEAR */
HB_B_SINGLE_W, /* 1 WB_SINGLE_CLEAR */
HB_B_DOUBLE_SINGLE_W, /* 2 WB_DOUBLE_SINGLE_CLEAR */
HB_B_SINGLE_DOUBLE_W, /* 3 WB_SINGLE_DOUBLE_CLEAR */
HB_B_DOUBLE_W, /* 0 WB_DOUBLE_CLEAR */
HB_B_SINGLE_W, /* 1 WB_SINGLE_CLEAR */
HB_B_DOUBLE_SINGLE_W, /* 2 WB_DOUBLE_SINGLE_CLEAR */
HB_B_SINGLE_DOUBLE_W, /* 3 WB_SINGLE_DOUBLE_CLEAR */
HB_B_DOUBLE_W, /* 4 WB_DOUBLE */
HB_B_SINGLE_W, /* 5 WB_SINGLE */
HB_B_DOUBLE_SINGLE_W, /* 6 WB_DOUBLE_SINGLE */
HB_B_SINGLE_DOUBLE_W, /* 7 WB_SINGLE_DOUBLE */
HB_B_DOUBLE_W, /* 4 WB_DOUBLE */
HB_B_SINGLE_W, /* 5 WB_SINGLE */
HB_B_DOUBLE_SINGLE_W, /* 6 WB_DOUBLE_SINGLE */
HB_B_SINGLE_DOUBLE_W, /* 7 WB_SINGLE_DOUBLE */
HB_B_HALF_FULL_W, /* 8 WB_HALF_FULL_CLEAR */
HB_B_HALF_W, /* 9 WB_HALF_CLEAR */
HB_B_FULL_HALF_W, /* 10 WB_FULL_HALF_CLEAR */
HB_B_FULL_W, /* 11 WB_FULL_CLEAR */
HB_B_HALF_FULL_W, /* 8 WB_HALF_FULL_CLEAR */
HB_B_HALF_W, /* 9 WB_HALF_CLEAR */
HB_B_FULL_HALF_W, /* 10 WB_FULL_HALF_CLEAR */
HB_B_FULL_W, /* 11 WB_FULL_CLEAR */
HB_B_HALF_FULL_W, /* 12 WB_HALF_FULL */
HB_B_HALF_W, /* 13 WB_HALF */
HB_B_FULL_HALF_W, /* 14 WB_FULL_HALF */
HB_B_FULL_W }; /* 15 WB_FULL */
HB_B_HALF_FULL_W, /* 12 WB_HALF_FULL */
HB_B_HALF_W, /* 13 WB_HALF */
HB_B_FULL_HALF_W, /* 14 WB_FULL_HALF */
HB_B_FULL_W
}; /* 15 WB_FULL */
HB_WCHAR szBoxBuf[ 10 ];
PHB_ITEM pBoxFrame = hb_param( 1, HB_IT_STRING );
@@ -392,7 +393,7 @@ HB_FUNC( HBCT_MAXCOL ) /* Return the maximum screen/window column number (zero o
change current window handle to <nHandle>
if <nHandle> is not used by other window
or is current window.
*/
*/
HB_FUNC( WALIAS )
{
int iWindow = hb_parnidef( 1, -1 );
@@ -416,7 +417,7 @@ HB_FUNC( WALIAS )
Warning: this is compatibility only function
which works correctly only for 255 windows.
*/
*/
HB_FUNC( WLIST )
{

View File

@@ -53,7 +53,7 @@
/* NOTE: User programs should never call this layer directly! */
/* This definition has to be placed before #include "hbapigt.h" */
#define HB_GT_NAME CTW
#define HB_GT_NAME CTW
#include "hbgtcore.h"
#include "hbstack.h"
@@ -63,31 +63,31 @@
#include "ctwin.h"
static int s_GtId;
static int s_GtId;
#undef HB_GTSUPERTABLE
#define HB_GTSUPERTABLE(g) ( &( HB_GTCTW_GET( g )->SuperTable ) )
#define HB_GTID_PTR (&s_GtId)
#define HB_GTSUPERTABLE( g ) ( &( HB_GTCTW_GET( g )->SuperTable ) )
#define HB_GTID_PTR ( &s_GtId )
#define HB_GTCTW_GET(p) ( ( PHB_GTCTW ) HB_GTLOCAL( p ) )
#define HB_CTW_TSD(p) ( ( PHB_CTWDATA ) hb_stackGetTSD( &(p)->TSD ) )
#define HB_GTCTW_GET( p ) ( ( PHB_GTCTW ) HB_GTLOCAL( p ) )
#define HB_CTW_TSD( p ) ( ( PHB_CTWDATA ) hb_stackGetTSD( &( p )->TSD ) )
#define HB_CTW_GETCURRENT(p) hb_ctw_CurrentWindow(p)
#define HB_CTW_SETCURRENT(p,n) ( HB_CTW_TSD(p)->iCurrWindow = (n) )
#define HB_CTW_GETCURRENT( p ) hb_ctw_CurrentWindow( p )
#define HB_CTW_SETCURRENT( p, n ) ( HB_CTW_TSD( p )->iCurrWindow = ( n ) )
#define HB_CTWIN_ALLOC 16
#define HB_CTWIN_ALLOC 16
#ifdef HB_CLP_STRICT
#define HB_CTWIN_MINROWS 1
#define HB_CTWIN_MINCOLS 1
#define HB_CTWIN_MAXROWS 255
#define HB_CTWIN_MAXCOLS 255
#define HB_CTWIN_MINROWS 1
#define HB_CTWIN_MINCOLS 1
#define HB_CTWIN_MAXROWS 255
#define HB_CTWIN_MAXCOLS 255
#endif
#define HB_CTW_SHADOW_MASK 0x8000000
#define HB_CTW_SHADOW_MASK 0x8000000
typedef struct
{
int iCurrWindow;
int iCurrWindow;
}
HB_CTWDATA, * PHB_CTWDATA;
@@ -131,10 +131,10 @@ typedef struct
typedef struct
{
PHB_GT pGT;
PHB_GT pGT;
HB_GT_FUNCS SuperTable;
HB_TSD TSD;
HB_TSD TSD;
int iShadowWidth;
int iShadowAttr;
@@ -183,7 +183,7 @@ static void hb_ctw_SetMap( PHB_GTCTW pCTW, int * piMap, int iWindow, int iTop, i
HB_SIZE nIndex;
int i;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_SetMap(%p,%p,%d,%d,%d,%d,%d,%d)", pCTW, piMap, iWindow, iTop, iLeft, iBottom, iRight, iNested));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_SetMap(%p,%p,%d,%d,%d,%d,%d,%d)", pCTW, piMap, iWindow, iTop, iLeft, iBottom, iRight, iNested ) );
if( iTop < 0 )
iTop = 0;
@@ -221,7 +221,7 @@ static void hb_ctw_ClearMap( PHB_GTCTW pCTW )
{
HB_SIZE nSize;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_ClearMap(%p)", pCTW));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_ClearMap(%p)", pCTW ) );
nSize = ( HB_SIZE ) pCTW->iMapHeight * pCTW->iMapWidth * sizeof( int );
memset( pCTW->pWindowMap, 0, nSize );
@@ -230,7 +230,7 @@ static void hb_ctw_ClearMap( PHB_GTCTW pCTW )
static void hb_ctw_TouchLines( PHB_GTCTW pCTW, int iFrom, int iTo )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_TouchLines(%p,%d,%d)", pCTW, iFrom, iTo));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_TouchLines(%p,%d,%d)", pCTW, iFrom, iTo ) );
while( iFrom <= iTo )
{
@@ -243,7 +243,7 @@ static void hb_ctw_WindowMap( PHB_GTCTW pCTW, int iWindow, HB_BOOL fExpose )
{
PHB_CT_WND pWnd;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_WindowMap(%p,%d,%d)", pCTW, iWindow, ( int ) fExpose));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_WindowMap(%p,%d,%d)", pCTW, iWindow, ( int ) fExpose ) );
pWnd = pCTW->windows[ iWindow ];
@@ -280,7 +280,7 @@ static void hb_ctw_WindowMap( PHB_GTCTW pCTW, int iWindow, HB_BOOL fExpose )
static void hb_ctw_RemapAllWindows( PHB_GTCTW pCTW, int iFrom, HB_BOOL fExpose )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_RemapAllWindows(%p,%d,%d)", pCTW, iFrom, ( int ) fExpose));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_RemapAllWindows(%p,%d,%d)", pCTW, iFrom, ( int ) fExpose ) );
if( pCTW->iMaxWindow )
{
@@ -299,7 +299,7 @@ static int hb_ctw_SetShadowAttr( PHB_GTCTW pCTW, int iAttr )
{
int iOldAttr;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_SetShadowAttr(%p,%d)", pCTW, iAttr));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_SetShadowAttr(%p,%d)", pCTW, iAttr ) );
iOldAttr = pCTW->iShadowAttr;
if( iAttr >= 0 ||
@@ -315,7 +315,7 @@ static int hb_ctw_SetMoveMode( PHB_GTCTW pCTW, int iMode )
{
int iOldMode;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_SetMoveMode(%p,%d)", pCTW, iMode));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_SetMoveMode(%p,%d)", pCTW, iMode ) );
iOldMode = pCTW->iMoveMode;
if( iMode >= 0 )
@@ -326,7 +326,7 @@ static int hb_ctw_SetMoveMode( PHB_GTCTW pCTW, int iMode )
static int hb_ctw_SetMoveStep( PHB_GTCTW pCTW, int iVertical, int iHorizontal )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_SetMoveStep(%p,%d,%d)", pCTW, iVertical, iHorizontal));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_SetMoveStep(%p,%d,%d)", pCTW, iVertical, iHorizontal ) );
if( iVertical < pCTW->iMapHeight && iHorizontal < pCTW->iMapWidth )
{
@@ -341,7 +341,7 @@ static int hb_ctw_SetMoveStep( PHB_GTCTW pCTW, int iVertical, int iHorizontal )
static int hb_ctw_SetWindowBoard( PHB_GTCTW pCTW, int iTop, int iLeft, int iBottom, int iRight )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_SetWindowBoard(%p,%d,%d,%d,%d)", pCTW, iTop, iLeft, iBottom, iRight));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_SetWindowBoard(%p,%d,%d,%d,%d)", pCTW, iTop, iLeft, iBottom, iRight ) );
#ifdef HB_CLP_STRICT
/*
@@ -357,11 +357,11 @@ static int hb_ctw_SetWindowBoard( PHB_GTCTW pCTW, int iTop, int iLeft, int iBott
if( iTop >= 0 && iLeft >= 0 && iTop < iBottom && iLeft < iRight )
{
pCTW->iBoardTop = iTop;
pCTW->iBoardLeft = iLeft;
pCTW->iBoardBottom = iBottom;
pCTW->iBoardRight = iRight;
pCTW->fBoardSet = HB_TRUE;
pCTW->iBoardTop = iTop;
pCTW->iBoardLeft = iLeft;
pCTW->iBoardBottom = iBottom;
pCTW->iBoardRight = iRight;
pCTW->fBoardSet = HB_TRUE;
hb_ctw_RemapAllWindows( pCTW, 0, HB_TRUE );
return 0;
@@ -372,7 +372,7 @@ static int hb_ctw_SetWindowBoard( PHB_GTCTW pCTW, int iTop, int iLeft, int iBott
static int hb_ctw_SetBorderMode( PHB_GTCTW pCTW, int iTop, int iLeft, int iBottom, int iRight )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_SetBorderMode(%p,%d,%d,%d,%d)", pCTW, iTop, iLeft, iBottom, iRight));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_SetBorderMode(%p,%d,%d,%d,%d)", pCTW, iTop, iLeft, iBottom, iRight ) );
if( iTop >= 0 )
pCTW->fBoardTop = iTop != 0;
@@ -390,7 +390,7 @@ static int hb_ctw_CurrentWindow( PHB_GTCTW pCTW )
{
PHB_CTWDATA pTSD;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_CurrentWindow(%p)", pCTW));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_CurrentWindow(%p)", pCTW ) );
pTSD = HB_CTW_TSD( pCTW );
@@ -411,7 +411,7 @@ static int hb_ctw_CurrentWindow( PHB_GTCTW pCTW )
static int hb_ctw_SelectWindow( PHB_GTCTW pCTW, int iWindow, HB_BOOL fToTop )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_SelectWindow(%p,%d,%d)", pCTW, iWindow, fToTop));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_SelectWindow(%p,%d,%d)", pCTW, iWindow, fToTop ) );
if( iWindow == 0 )
HB_CTW_SETCURRENT( pCTW, 0 );
@@ -439,7 +439,7 @@ static int hb_ctw_SelectWindow( PHB_GTCTW pCTW, int iWindow, HB_BOOL fToTop )
}
pCTW->windowStack[ i ] = iWindow;
if( iPos != i && !pCTW->windows[ iWindow ]->fHidden )
if( iPos != i && ! pCTW->windows[ iWindow ]->fHidden )
{
/* INFO: CT effectively calls hb_ctw_RemapAllWindows() here */
if( i < pCTW->iOpenWindows - 1 )
@@ -463,7 +463,7 @@ static int hb_ctw_ChangeWindowHandle( PHB_GTCTW pCTW, int iNewWindow )
{
int iWindow, i;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_ChangeWindowHandle(%p,%d)", pCTW, iNewWindow));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_ChangeWindowHandle(%p,%d)", pCTW, iNewWindow ) );
iWindow = HB_CTW_GETCURRENT( pCTW );
if( iWindow != iNewWindow )
@@ -498,7 +498,7 @@ static int hb_ctw_ChangeWindowHandle( PHB_GTCTW pCTW, int iNewWindow )
if( i >= 0 )
{
pCTW->windowStack[ i ] = iNewWindow;
if( !pWnd->fHidden )
if( ! pWnd->fHidden )
{
if( pWnd->iShadowAttr == HB_CTW_SHADOW_EXT2 )
i = 0;
@@ -514,7 +514,7 @@ static int hb_ctw_ChangeWindowHandle( PHB_GTCTW pCTW, int iNewWindow )
static int hb_ctw_GetWindowStack( PHB_GTCTW pCTW, const int ** piStack )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_GetWindowStack(%p,%p)", pCTW, piStack));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_GetWindowStack(%p,%p)", pCTW, piStack ) );
*piStack = pCTW->windowStack;
@@ -525,7 +525,7 @@ static int hb_ctw_Visible( PHB_GTCTW pCTW, int iWindow, int iVisible )
{
int iResult = HB_CTW_UNDEF;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_Visible(%p,%d,%d)", pCTW, iWindow, iVisible));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_Visible(%p,%d,%d)", pCTW, iWindow, iVisible ) );
if( iWindow == 0 )
iResult = HB_CTW_VISIBLE;
@@ -551,7 +551,7 @@ static int hb_ctw_SetWindowLevel( PHB_GTCTW pCTW, int iWindow, int iLevel )
int iResult = -1, iPos, i;
HB_BOOL fToTop;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_SetWindowLevel(%p,%d,%d)", pCTW, iWindow, iLevel));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_SetWindowLevel(%p,%d,%d)", pCTW, iWindow, iLevel ) );
if( iWindow > 0 && iWindow <= pCTW->iMaxWindow &&
pCTW->windows[ iWindow ] != NULL )
@@ -594,7 +594,7 @@ static int hb_ctw_SetWindowLevel( PHB_GTCTW pCTW, int iWindow, int iLevel )
}
pCTW->windowStack[ i ] = iWindow;
}
if( !pWnd->fHidden && iPos != i )
if( ! pWnd->fHidden && iPos != i )
hb_ctw_RemapAllWindows( pCTW, HB_MIN( iPos, i ), HB_TRUE );
}
}
@@ -608,7 +608,7 @@ static int hb_ctw_SetWindowShadow( PHB_GTCTW pCTW, int iWindow, int iAttr )
{
int iResult = -1;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_SetWindowShadow(%p,%d,%d)", pCTW, iWindow, iAttr));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_SetWindowShadow(%p,%d,%d)", pCTW, iWindow, iAttr ) );
if( iWindow > 0 && iWindow <= pCTW->iMaxWindow &&
pCTW->windows[ iWindow ] != NULL )
@@ -623,7 +623,7 @@ static int hb_ctw_SetWindowShadow( PHB_GTCTW pCTW, int iWindow, int iAttr )
pWnd->iShadowAttr != iAttr )
{
pWnd->iShadowAttr = iAttr;
if( !pWnd->fHidden )
if( ! pWnd->fHidden )
hb_ctw_RemapAllWindows( pCTW, 0, HB_TRUE );
}
}
@@ -635,7 +635,7 @@ static int hb_ctw_MaxWindow( PHB_GTCTW pCTW )
{
int i, iMaxHandle = 0;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_MaxWindow(%p)", pCTW));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_MaxWindow(%p)", pCTW ) );
for( i = 0; i < pCTW->iOpenWindows; ++i )
{
@@ -654,7 +654,7 @@ static int hb_ctw_CreateWindow( PHB_GTCTW pCTW, int iTop, int iLeft, int iBottom
int iRow, iCol, iHeight, iWidth, iTmp;
long lIndex;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_CreateWindow(%p,%d,%d,%d,%d,%d,%d,%d)", pCTW, iTop, iLeft, iBottom, iRight, (int) fClear, iColor, (int) fVisible));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_CreateWindow(%p,%d,%d,%d,%d,%d,%d,%d)", pCTW, iTop, iLeft, iBottom, iRight, ( int ) fClear, iColor, ( int ) fVisible ) );
if( pCTW->iOpenWindows == pCTW->iMaxWindow )
{
@@ -666,7 +666,7 @@ static int hb_ctw_CreateWindow( PHB_GTCTW pCTW, int iTop, int iLeft, int iBottom
HB_GTSELF_GETSIZE( pCTW->pGT, &pCTW->iMapHeight, &pCTW->iMapWidth );
pCTW->iShadowWidth = hb_ctw_CalcShadowWidth( pCTW->iMapHeight, pCTW->iMapWidth );
if( !pCTW->fBoardSet )
if( ! pCTW->fBoardSet )
hb_ctw_SetWindowBoard( pCTW, 0, 0, pCTW->iMapHeight - 1, pCTW->iMapWidth - 1 );
nSize = ( HB_SIZE ) pCTW->iMapHeight * pCTW->iMapWidth * sizeof( int );
pCTW->pWindowMap = ( int * ) hb_xgrab( nSize );
@@ -723,9 +723,9 @@ static int hb_ctw_CreateWindow( PHB_GTCTW pCTW, int iTop, int iLeft, int iBottom
iCol = iRight;
pWnd = ( PHB_CT_WND ) hb_xgrab( sizeof( HB_CT_WND ) );
memset( pWnd, 0, sizeof( HB_CT_WND ) );
memset( pWnd, 0, sizeof( HB_CT_WND ) );
pWnd->fHidden = !fVisible;
pWnd->fHidden = ! fVisible;
pWnd->iLevel = HB_CTW_DEFAULT;
pWnd->iShadowAttr = pCTW->iShadowAttr;
pWnd->iCursorStyle = HB_GTSELF_GETCURSORSTYLE( pCTW->pGT );
@@ -742,7 +742,7 @@ static int hb_ctw_CreateWindow( PHB_GTCTW pCTW, int iTop, int iLeft, int iBottom
if( pWnd->iShadowAttr >= 0 )
fClear = HB_TRUE;
bAttr = 0;
bAttr = 0;
if( iColor < 0 )
iColor = HB_GTSELF_GETCOLOR( pCTW->pGT );
usChar = HB_GTSELF_GETCLEARCHAR( pCTW->pGT );
@@ -752,7 +752,7 @@ static int hb_ctw_CreateWindow( PHB_GTCTW pCTW, int iTop, int iLeft, int iBottom
{
for( iCol = pWnd->iFirstCol; iCol < pWnd->iFirstCol + pWnd->iWidth; ++iCol )
{
if( !fClear && !HB_GTSELF_GETSCRCHAR( pCTW->pGT, iRow, iCol, &iColor, &bAttr, &usChar ) )
if( ! fClear && ! HB_GTSELF_GETSCRCHAR( pCTW->pGT, iRow, iCol, &iColor, &bAttr, &usChar ) )
{
usChar = HB_GTSELF_GETCLEARCHAR( pCTW->pGT );
iColor = HB_GTSELF_GETCOLOR( pCTW->pGT );
@@ -783,7 +783,7 @@ static int hb_ctw_CreateWindow( PHB_GTCTW pCTW, int iTop, int iLeft, int iBottom
}
pCTW->windowStack[ iTmp ] = pWnd->iHandle;
HB_CTW_SETCURRENT( pCTW, pWnd->iHandle );
if( !pWnd->fHidden )
if( ! pWnd->fHidden )
{
if( iTmp < pCTW->iOpenWindows - 1 )
hb_ctw_RemapAllWindows( pCTW, iTmp, HB_TRUE );
@@ -829,7 +829,7 @@ static int hb_ctw_CloseWindow( PHB_GTCTW pCTW, int iWindow )
HB_CTW_SETCURRENT( pCTW, iLast );
}
if( !fHidden )
if( ! fHidden )
hb_ctw_RemapAllWindows( pCTW, 0, HB_TRUE );
return iLast;
@@ -840,7 +840,7 @@ static int hb_ctw_CloseWindow( PHB_GTCTW pCTW, int iWindow )
static int hb_ctw_CloseAllWindows( PHB_GTCTW pCTW )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_CloseAllWindows(%p)", pCTW));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_CloseAllWindows(%p)", pCTW ) );
if( pCTW->iOpenWindows > 0 )
{
@@ -869,7 +869,7 @@ static int hb_ctw_CloseAllWindows( PHB_GTCTW pCTW )
static int hb_ctw_CenterWindow( PHB_GTCTW pCTW, int iWindow, HB_BOOL fCenter )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_CenterWindow(%p,%d,%d)", pCTW, iWindow, (int) fCenter));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_CenterWindow(%p,%d,%d)", pCTW, iWindow, ( int ) fCenter ) );
if( iWindow > 0 && iWindow <= pCTW->iOpenWindows )
{
@@ -904,7 +904,7 @@ static int hb_ctw_CenterWindow( PHB_GTCTW pCTW, int iWindow, HB_BOOL fCenter )
pWnd->iFirstCol = pCTW->iBoardLeft;
}
if( !pWnd->fHidden &&
if( ! pWnd->fHidden &&
( iRow != pWnd->iFirstRow || iCol != pWnd->iFirstCol ) )
hb_ctw_RemapAllWindows( pCTW, 0, HB_TRUE );
@@ -917,7 +917,7 @@ static int hb_ctw_CenterWindow( PHB_GTCTW pCTW, int iWindow, HB_BOOL fCenter )
static int hb_ctw_MoveWindow( PHB_GTCTW pCTW, int iWindow, int iRow, int iCol )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_MoveWindow(%p,%d,%d,%d)", pCTW, iWindow, iRow, iCol));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_MoveWindow(%p,%d,%d,%d)", pCTW, iWindow, iRow, iCol ) );
if( iWindow > 0 && iWindow <= pCTW->iOpenWindows )
{
@@ -944,7 +944,7 @@ static int hb_ctw_MoveWindow( PHB_GTCTW pCTW, int iWindow, int iRow, int iCol )
static int hb_ctw_ChangeMargins( PHB_GTCTW pCTW, int iWindow, int iTop, int iLeft, int iBottom, int iRight )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_ChangeMargins(%p,%d,%d,%d,%d,%d)", pCTW, iWindow, iTop, iLeft, iBottom, iRight));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_ChangeMargins(%p,%d,%d,%d,%d,%d)", pCTW, iWindow, iTop, iLeft, iBottom, iRight ) );
if( iWindow > 0 && iWindow <= pCTW->iOpenWindows )
{
@@ -978,7 +978,7 @@ static int hb_ctw_ChangeMargins( PHB_GTCTW pCTW, int iWindow, int iTop, int iLef
static int hb_ctw_SetWindowClip( PHB_GTCTW pCTW, int iWindow, int iTop, int iLeft, int iBottom, int iRight )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_SetWindowClip(%p,%d,%d,%d,%d,%d)", pCTW, iWindow, iTop, iLeft, iBottom, iRight));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_SetWindowClip(%p,%d,%d,%d,%d,%d)", pCTW, iWindow, iTop, iLeft, iBottom, iRight ) );
if( iWindow > 0 && iWindow <= pCTW->iOpenWindows )
{
@@ -997,9 +997,9 @@ static int hb_ctw_SetWindowClip( PHB_GTCTW pCTW, int iWindow, int iTop, int iLef
if( iTop > iBottom || iLeft > iRight ||
( iTop == 0 && iLeft == 0 &&
iBottom == pWnd->iHeight - 1 && iRight == pWnd->iWidth -1 ) )
iBottom == pWnd->iHeight - 1 && iRight == pWnd->iWidth - 1 ) )
{
pWnd->fClip = HB_FALSE;
pWnd->fClip = HB_FALSE;
}
else
{
@@ -1018,7 +1018,7 @@ static int hb_ctw_SetWindowClip( PHB_GTCTW pCTW, int iWindow, int iTop, int iLef
static int hb_ctw_GetWindowCords( PHB_GTCTW pCTW, int iWindow, HB_BOOL fCenter, int * piTop, int * piLeft, int * piBottom, int * piRight )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_GetWindowCords(%p,%d,%d,%p,%p,%p,%p)", pCTW, iWindow, (int) fCenter, piTop, piLeft, piBottom, piRight));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_GetWindowCords(%p,%d,%d,%p,%p,%p,%p)", pCTW, iWindow, ( int ) fCenter, piTop, piLeft, piBottom, piRight ) );
if( iWindow > 0 && iWindow <= pCTW->iOpenWindows )
{
@@ -1060,7 +1060,7 @@ static int hb_ctw_GetWindowCords( PHB_GTCTW pCTW, int iWindow, HB_BOOL fCenter,
static int hb_ctw_GetFormatCords( PHB_GTCTW pCTW, int iWindow, HB_BOOL fRelative, int * piTop, int * piLeft, int * piBottom, int * piRight )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_GetFormatCords(%p,%d,%d,%p,%p,%p,%p)", pCTW, iWindow, (int) fRelative, piTop, piLeft, piBottom, piRight));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_GetFormatCords(%p,%d,%d,%p,%p,%p,%p)", pCTW, iWindow, ( int ) fRelative, piTop, piLeft, piBottom, piRight ) );
if( iWindow > 0 && iWindow <= pCTW->iOpenWindows )
{
@@ -1104,7 +1104,7 @@ static int hb_ctw_AddWindowBox( PHB_GTCTW pCTW, int iWindow, const HB_WCHAR * sz
{
int iMaxRow, iMaxCol;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_AddWindowBox(%p,%d,%p,%d)", pCTW, iWindow, szBoxW, iColor));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_AddWindowBox(%p,%d,%p,%d)", pCTW, iWindow, szBoxW, iColor ) );
iMaxRow = HB_GTSELF_MAXROW( pCTW->pGT );
iMaxCol = HB_GTSELF_MAXCOL( pCTW->pGT );
@@ -1131,7 +1131,7 @@ static int hb_ctw_AddWindowBox( PHB_GTCTW pCTW, int iWindow, const HB_WCHAR * sz
static int hb_ctw_SwapWindows( PHB_GTCTW pCTW, int iWindow1, int iWindow2 )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_SwapWindows(%p,%d,%d)", pCTW, iWindow1, iWindow2));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_SwapWindows(%p,%d,%d)", pCTW, iWindow1, iWindow2 ) );
if( iWindow1 > 0 && iWindow1 <= pCTW->iOpenWindows &&
pCTW->windows[ iWindow1 ] != NULL &&
@@ -1154,7 +1154,7 @@ static int hb_ctw_SwapWindows( PHB_GTCTW pCTW, int iWindow1, int iWindow2 )
pWnd->fHidden = pCTW->windows[ iWindow1 ]->fHidden;
pCTW->windows[ iWindow1 ]->fHidden = fHidden;
if( !fHidden || !pWnd->fHidden )
if( ! fHidden || ! pWnd->fHidden )
hb_ctw_RemapAllWindows( pCTW, 0, HB_TRUE );
return iWindow1;
}
@@ -1168,7 +1168,7 @@ static void hb_ctw_Init( PHB_GTCTW pCTW )
{
int iRow, iCol;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_Init(%p)",pCTW));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_Init(%p)", pCTW ) );
pCTW->iShadowWidth = 2;
pCTW->iShadowAttr = -1;
@@ -1192,7 +1192,7 @@ static PHB_GTCTW hb_ctw_base( void )
{
PHB_GT pGT;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_base()"));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_base()" ) );
pGT = hb_gt_Base();
if( pGT )
@@ -1255,7 +1255,7 @@ static int hb_ctw_MouseRow( PHB_GT pGT )
PHB_GTCTW pCTW;
int iRow, iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_MouseRow(%p)", pGT));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_MouseRow(%p)", pGT ) );
iRow = HB_GTSUPER_MOUSEROW( pGT );
@@ -1273,7 +1273,7 @@ static int hb_ctw_MouseCol( PHB_GT pGT )
PHB_GTCTW pCTW;
int iCol, iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_MouseCol(%p)", pGT));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_MouseCol(%p)", pGT ) );
iCol = HB_GTSUPER_MOUSECOL( pGT );
@@ -1291,7 +1291,7 @@ static void hb_ctw_gt_GetPos( PHB_GT pGT, int * piRow, int * piCol )
PHB_GTCTW pCTW;
int iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_GetPos(%p,%p,%p)", pGT, piRow, piCol));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_GetPos(%p,%p,%p)", pGT, piRow, piCol ) );
pCTW = HB_GTCTW_GET( pGT );
iWindow = HB_CTW_GETCURRENT( pCTW );
@@ -1314,10 +1314,10 @@ static void hb_ctw_gt_SetPos( PHB_GT pGT, int iRow, int iCol )
PHB_GTCTW pCTW;
int iHeight, iWidth, iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_GetPos(%p,%d,%d)", pGT, iRow, iCol));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_GetPos(%p,%d,%d)", pGT, iRow, iCol ) );
iHeight = HB_GTSELF_MAXROW( pGT ) + 1;
iWidth = HB_GTSELF_MAXCOL( pGT ) + 1;
iWidth = HB_GTSELF_MAXCOL( pGT ) + 1;
if( iCol > iWidth )
iCol = iWidth;
@@ -1333,8 +1333,8 @@ static void hb_ctw_gt_SetPos( PHB_GT pGT, int iRow, int iCol )
iWindow = HB_CTW_GETCURRENT( pCTW );
if( iWindow > 0 )
{
if( iRow < - pCTW->windows[ iWindow ]->iTopMargin )
iRow = - pCTW->windows[ iWindow ]->iTopMargin;
if( iRow < -pCTW->windows[ iWindow ]->iTopMargin )
iRow = -pCTW->windows[ iWindow ]->iTopMargin;
pCTW->windows[ iWindow ]->iRow = iRow;
pCTW->windows[ iWindow ]->iCol = iCol;
}
@@ -1351,7 +1351,7 @@ static int hb_ctw_gt_MaxCol( PHB_GT pGT )
PHB_GTCTW pCTW;
int iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_MaxCol(%p)", pGT));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_MaxCol(%p)", pGT ) );
pCTW = HB_GTCTW_GET( pGT );
iWindow = HB_CTW_GETCURRENT( pCTW );
@@ -1368,7 +1368,7 @@ static int hb_ctw_gt_MaxRow( PHB_GT pGT )
PHB_GTCTW pCTW;
int iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_MaxRow(%p)", pGT));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_MaxRow(%p)", pGT ) );
pCTW = HB_GTCTW_GET( pGT );
iWindow = HB_CTW_GETCURRENT( pCTW );
@@ -1384,7 +1384,7 @@ static int hb_ctw_gt_MaxRow( PHB_GT pGT )
* CTWIN uses differ rules in console output then standard Clipper's
* GT drivers so we have to overload WRITECON() method, [druzus]
*/
#define WRITECON_BUFFER_SIZE 512
#define WRITECON_BUFFER_SIZE 512
static void hb_ctw_gt_WriteCon( PHB_GT pGT, const char * szText, HB_SIZE nLength )
{
@@ -1397,7 +1397,7 @@ static void hb_ctw_gt_WriteCon( PHB_GT pGT, const char * szText, HB_SIZE nLength
HB_SIZE nIndex = 0;
HB_WCHAR wc;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_WriteCon(%p,%p,%" HB_PFS "u)", pGT, szText, nLength));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_WriteCon(%p,%p,%" HB_PFS "u)", pGT, szText, nLength ) );
iMaxRow = HB_GTSELF_MAXROW( pGT );
iMaxCol = HB_GTSELF_MAXCOL( pGT );
@@ -1520,7 +1520,7 @@ static void hb_ctw_gt_WriteConW( PHB_GT pGT, const HB_WCHAR * szText, HB_SIZE nL
HB_WCHAR szString[ WRITECON_BUFFER_SIZE ];
HB_SIZE nIndex = 0;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_WriteConW(%p,%p,%" HB_PFS "u)", pGT, szText, nLength));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_WriteConW(%p,%p,%" HB_PFS "u)", pGT, szText, nLength ) );
iMaxRow = HB_GTSELF_MAXROW( pGT );
iMaxCol = HB_GTSELF_MAXCOL( pGT );
@@ -1641,7 +1641,7 @@ static int hb_ctw_gt_GetCursorStyle( PHB_GT pGT )
PHB_GTCTW pCTW;
int iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_GetCursorStyle(%p)", pGT));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_GetCursorStyle(%p)", pGT ) );
pCTW = HB_GTCTW_GET( pGT );
iWindow = HB_CTW_GETCURRENT( pCTW );
@@ -1656,7 +1656,7 @@ static void hb_ctw_gt_SetCursorStyle( PHB_GT pGT, int iStyle )
PHB_GTCTW pCTW;
int iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_SetCursorStyle(%p,%d)", pGT, iStyle));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_SetCursorStyle(%p,%d)", pGT, iStyle ) );
pCTW = HB_GTCTW_GET( pGT );
iWindow = HB_CTW_GETCURRENT( pCTW );
@@ -1685,7 +1685,7 @@ static void hb_ctw_gt_GetColorStr( PHB_GT pGT, char * pszColorString )
PHB_GTCTW pCTW;
int iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_GetColorStr(%p,%p)", pGT, pszColorString));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_GetColorStr(%p,%p)", pGT, pszColorString ) );
pCTW = HB_GTCTW_GET( pGT );
iWindow = HB_CTW_GETCURRENT( pCTW );
@@ -1703,7 +1703,7 @@ static void hb_ctw_gt_SetColorStr( PHB_GT pGT, const char * szColorString )
PHB_GTCTW pCTW;
int iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_SetColorStr(%p,%s)", pGT, szColorString));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_SetColorStr(%p,%s)", pGT, szColorString ) );
pCTW = HB_GTCTW_GET( pGT );
iWindow = HB_CTW_GETCURRENT( pCTW );
@@ -1722,7 +1722,7 @@ static void hb_ctw_gt_ColorSelect( PHB_GT pGT, int iColorIndex )
PHB_GTCTW pCTW;
int iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_ColorSelect(%p,%d)", pGT, iColorIndex));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_ColorSelect(%p,%d)", pGT, iColorIndex ) );
pCTW = HB_GTCTW_GET( pGT );
iWindow = HB_CTW_GETCURRENT( pCTW );
@@ -1741,7 +1741,7 @@ static int hb_ctw_gt_GetColor( PHB_GT pGT )
PHB_GTCTW pCTW;
int iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_GetColor(%p)", pGT));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_GetColor(%p)", pGT ) );
pCTW = HB_GTCTW_GET( pGT );
iWindow = HB_CTW_GETCURRENT( pCTW );
@@ -1759,7 +1759,7 @@ static void hb_ctw_gt_GetColorData( PHB_GT pGT, int ** pColorsPtr, int * piColor
PHB_GTCTW pCTW;
int iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_GetColor(%p,%p,%p,%p)", pGT, pColorsPtr, piColorCount, piColorIndex));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_GetColor(%p,%p,%p,%p)", pGT, pColorsPtr, piColorCount, piColorIndex ) );
pCTW = HB_GTCTW_GET( pGT );
iWindow = HB_CTW_GETCURRENT( pCTW );
@@ -1781,7 +1781,7 @@ static void hb_ctw_gt_GetScrCursor( PHB_GT pGT, int * piRow, int * piCol, int *
PHB_GTCTW pCTW;
int iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_GetScrCursor(%p,%p,%p,%p)", pGT, piRow, piCol, piStyle));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_GetScrCursor(%p,%p,%p,%p)", pGT, piRow, piCol, piStyle ) );
HB_GTSUPER_GETSCRCURSOR( pGT, piRow, piCol, piStyle );
pCTW = HB_GTCTW_GET( pGT );
@@ -1815,7 +1815,7 @@ static HB_BOOL hb_ctw_gt_GetScrChar( PHB_GT pGT, int iRow, int iCol,
PHB_GTCTW pCTW;
int iWindow, iShadow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_GetScrChar(%p,%d,%d,%p,%p,%p)", pGT, iRow, iCol, piColor, pbAttr, pusChar));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_GetScrChar(%p,%d,%d,%p,%p,%p)", pGT, iRow, iCol, piColor, pbAttr, pusChar ) );
pCTW = HB_GTCTW_GET( pGT );
iWindow = iShadow = 0;
@@ -1873,7 +1873,7 @@ static HB_BOOL hb_ctw_gt_GetScrUC( PHB_GT pGT, int iRow, int iCol,
{
HB_USHORT usChar;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_GetScrUC(%p,%d,%d,%p,%p,%p,%d)", pGT, iRow, iCol, piColor, pbAttr, puChar, fTerm));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_GetScrUC(%p,%d,%d,%p,%p,%p,%d)", pGT, iRow, iCol, piColor, pbAttr, puChar, fTerm ) );
if( hb_ctw_gt_GetScrChar( pGT, iRow, iCol, piColor, pbAttr, &usChar ) )
{
@@ -1884,7 +1884,7 @@ static HB_BOOL hb_ctw_gt_GetScrUC( PHB_GT pGT, int iRow, int iCol,
uc = hb_cdpGetUC( pGT->cdpTerm, usChar, 0 );
if( uc == 0 )
{
if( pGT->cdpBox && ( !fTerm || pGT->cdpBox != pGT->cdpTerm ) &&
if( pGT->cdpBox && ( ! fTerm || pGT->cdpBox != pGT->cdpTerm ) &&
pGT->cdpBox != pGT->cdpHost && ( *pbAttr & HB_GT_ATTR_BOX ) )
uc = hb_cdpGetUC( pGT->cdpBox, usChar, 0 );
if( uc == 0 )
@@ -1909,7 +1909,7 @@ static HB_BOOL hb_ctw_gt_GetChar( PHB_GT pGT, int iRow, int iCol,
PHB_CT_WND pWnd;
int iWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_GetChar(%p,%d,%d,%p,%p,%p)", pGT, iRow, iCol, piColor, pbAttr, pusChar));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_GetChar(%p,%d,%d,%p,%p,%p)", pGT, iRow, iCol, piColor, pbAttr, pusChar ) );
pCTW = HB_GTCTW_GET( pGT );
iWindow = HB_CTW_GETCURRENT( pCTW );
@@ -1938,7 +1938,7 @@ static HB_BOOL hb_ctw_gt_PutChar( PHB_GT pGT, int iRow, int iCol,
PHB_GTCTW pCTW;
int iWindow, iCurrWindow;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_PutChar(%p,%d,%d,%d,%d,%d)", pGT, iRow, iCol, iColor, (int)bAttr, (int)usChar));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_PutChar(%p,%d,%d,%d,%d,%d)", pGT, iRow, iCol, iColor, ( int ) bAttr, ( int ) usChar ) );
pCTW = HB_GTCTW_GET( pGT );
iWindow = iCurrWindow = HB_CTW_GETCURRENT( pCTW );
@@ -2032,7 +2032,7 @@ static HB_BOOL hb_ctw_gt_PutChar( PHB_GT pGT, int iRow, int iCol,
static HB_BOOL hb_ctw_gt_Resize( PHB_GT pGT, int iRows, int iCols )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_Resize(%p,%d,%d)", pGT, iRows, iCols));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_Resize(%p,%d,%d)", pGT, iRows, iCols ) );
if( HB_GTSUPER_RESIZE( pGT, iRows, iCols ) )
{
@@ -2058,7 +2058,7 @@ static HB_BOOL hb_ctw_gt_Resize( PHB_GT pGT, int iRows, int iCols )
static HB_BOOL hb_ctw_gt_Info( PHB_GT pGT, int iType, PHB_GT_INFO pInfo )
{
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_Info(%p,%d,%p)", pGT, iType, pInfo));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_Info(%p,%d,%p)", pGT, iType, pInfo ) );
switch( iType )
{
@@ -2116,7 +2116,7 @@ static int hb_ctw_gt_Alert( PHB_GT pGT, PHB_ITEM pMessage, PHB_ITEM pOptions,
{
int iOptions, iRet = 0;
HB_TRACE( HB_TR_DEBUG, ("hb_ctw_gt_Alert(%p,%p,%p,%d,%d,%f)", pGT, pMessage, pOptions, iClrNorm, iClrHigh, dDelay ) );
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_Alert(%p,%p,%p,%d,%d,%f)", pGT, pMessage, pOptions, iClrNorm, iClrHigh, dDelay ) );
iOptions = ( int ) hb_arrayLen( pOptions );
@@ -2137,7 +2137,7 @@ static int hb_ctw_gt_Alert( PHB_GT pGT, PHB_ITEM pMessage, PHB_ITEM pOptions,
HB_GTSELF_INFO( pGT, HB_GTI_KBDSUPPORT, &gtInfo );
if( gtInfo.pResult )
{
if( !hb_itemGetL( gtInfo.pResult ) )
if( ! hb_itemGetL( gtInfo.pResult ) )
fScreen = HB_FALSE;
hb_itemRelease( gtInfo.pResult );
}
@@ -2328,7 +2328,7 @@ static int hb_ctw_gt_ReadKey( PHB_GT pGT, int iEventMask )
{
int iKey;
HB_TRACE(HB_TR_DEBUG, ("hb_ctw_gt_ReadKey(%p,%d)", pGT, iEventMask));
HB_TRACE( HB_TR_DEBUG, ( "hb_ctw_gt_ReadKey(%p,%d)", pGT, iEventMask ) );
iKey = HB_GTSUPER_READKEY( pGT, iEventMask );
@@ -2403,6 +2403,7 @@ static void hb_ctw_gt_RedrawDiff( PHB_GT pGT )
HB_BOOL hb_ctwInit( void )
{
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
hb_gt_BaseFree( pCTW->pGT );
return pCTW != NULL;
@@ -2412,6 +2413,7 @@ int hb_ctwSetShadowAttr( int iAttr )
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_SetShadowAttr( pCTW, iAttr );
@@ -2424,6 +2426,7 @@ int hb_ctwSetMoveMode( int iMode )
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_SetMoveMode( pCTW, iMode );
@@ -2436,6 +2439,7 @@ int hb_ctwSetMoveStep( int iVertical, int iHorizontal )
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_SetMoveStep( pCTW, iVertical, iHorizontal );
@@ -2448,6 +2452,7 @@ int hb_ctwSetWindowBoard( int iTop, int iLeft, int iBottom, int iRight )
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_SetWindowBoard( pCTW, iTop, iLeft, iBottom, iRight );
@@ -2461,6 +2466,7 @@ int hb_ctwSetBorderMode( int iTop, int iLeft, int iBottom, int iRight )
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_SetBorderMode( pCTW, iTop, iLeft, iBottom, iRight );
@@ -2473,6 +2479,7 @@ int hb_ctwCreateWindow( int iTop, int iLeft, int iBottom, int iRight, HB_BOOL f
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_CreateWindow( pCTW, iTop, iLeft, iBottom, iRight, fClear, iColor, fVisible );
@@ -2486,6 +2493,7 @@ int hb_ctwCloseAllWindows( void )
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_CloseAllWindows( pCTW );
@@ -2499,6 +2507,7 @@ int hb_ctwCloseWindow( int iWindow )
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_CloseWindow( pCTW, iWindow );
@@ -2512,6 +2521,7 @@ int hb_ctwCurrentWindow( void )
{
int iResult = 0;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_CurrentWindow( pCTW );
@@ -2524,6 +2534,7 @@ int hb_ctwSelectWindow( int iWindow, HB_BOOL fToTop )
{
int iResult = 0;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_SelectWindow( pCTW, iWindow, fToTop );
@@ -2537,6 +2548,7 @@ int hb_ctwChangeWindowHandle( int iNewWindow )
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_ChangeWindowHandle( pCTW, iNewWindow );
@@ -2549,6 +2561,7 @@ int hb_ctwGetWindowStack( const int ** piStack )
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_GetWindowStack( pCTW, piStack );
@@ -2561,6 +2574,7 @@ int hb_ctwVisible( int iWindow, int iVisible )
{
int iResult = HB_CTW_UNDEF;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_Visible( pCTW, iWindow, iVisible );
@@ -2574,6 +2588,7 @@ int hb_ctwSetWindowLevel( int iWindow, int iLevel )
{
int iResult = HB_CTW_UNDEF;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_SetWindowLevel( pCTW, iWindow, iLevel );
@@ -2587,6 +2602,7 @@ int hb_ctwSetWindowShadow( int iWindow, int iAttr )
{
int iResult = HB_CTW_UNDEF;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_SetWindowShadow( pCTW, iWindow, iAttr );
@@ -2600,6 +2616,7 @@ int hb_ctwMaxWindow( void )
{
int iResult = 0;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_MaxWindow( pCTW );
@@ -2612,6 +2629,7 @@ int hb_ctwChangeMargins( int iWindow, int iTop, int iLeft, int iBottom, int iRi
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_ChangeMargins( pCTW, iWindow, iTop, iLeft, iBottom, iRight );
@@ -2624,6 +2642,7 @@ int hb_ctwSetWindowClip( int iWindow, int iTop, int iLeft, int iBottom, int iRi
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_SetWindowClip( pCTW, iWindow, iTop, iLeft, iBottom, iRight );
@@ -2637,6 +2656,7 @@ int hb_ctwGetWindowCords( int iWindow, HB_BOOL fCenter, int * piTop, int * piLe
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_GetWindowCords( pCTW, iWindow, fCenter, piTop, piLeft, piBottom, piRight );
@@ -2649,6 +2669,7 @@ int hb_ctwGetFormatCords( int iWindow, HB_BOOL fRelative, int * piTop, int * pi
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_GetFormatCords( pCTW, iWindow, fRelative, piTop, piLeft, piBottom, piRight );
@@ -2661,6 +2682,7 @@ int hb_ctwMoveWindow( int iWindow, int iRow, int iCol )
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_MoveWindow( pCTW, iWindow, iRow, iCol );
@@ -2674,6 +2696,7 @@ int hb_ctwCenterWindow( int iWindow, HB_BOOL fCenter )
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_CenterWindow( pCTW, iWindow, fCenter );
@@ -2687,6 +2710,7 @@ int hb_ctwAddWindowBox( int iWindow, const HB_WCHAR * szBoxW, int iColor )
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_AddWindowBox( pCTW, iWindow, szBoxW, iColor );
@@ -2700,6 +2724,7 @@ int hb_ctwSwapWindows( int iWindow1, int iWindow2 )
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = hb_ctw_SwapWindows( pCTW, iWindow1, iWindow2 );
@@ -2713,6 +2738,7 @@ int hb_ctwGetPosWindow( int iRow, int iCol )
{
int iResult = -1;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
if( iRow >= pCTW->iBoardTop && iRow <= pCTW->iBoardBottom &&
@@ -2735,11 +2761,12 @@ int hb_ctwLastKey( int * piNewKey )
*/
int iResult = 0;
PHB_GTCTW pCTW = hb_ctw_base();
if( pCTW )
{
iResult = pCTW->iLastKey;
if( piNewKey )
pCTW->iLastKey = * piNewKey;
pCTW->iLastKey = *piNewKey;
hb_gt_BaseFree( pCTW->pGT );
}
return iResult;
@@ -2747,41 +2774,41 @@ int hb_ctwLastKey( int * piNewKey )
static HB_BOOL hb_gt_FuncInit( PHB_GT_FUNCS pFuncTable )
{
HB_TRACE(HB_TR_DEBUG, ("hb_gt_FuncInit(%p)", pFuncTable));
HB_TRACE( HB_TR_DEBUG, ( "hb_gt_FuncInit(%p)", pFuncTable ) );
pFuncTable->Exit = hb_ctw_gt_Exit;
pFuncTable->MouseRow = hb_ctw_MouseRow;
pFuncTable->MouseCol = hb_ctw_MouseCol;
pFuncTable->MaxCol = hb_ctw_gt_MaxCol;
pFuncTable->MaxRow = hb_ctw_gt_MaxRow;
pFuncTable->GetPos = hb_ctw_gt_GetPos;
pFuncTable->SetPos = hb_ctw_gt_SetPos;
pFuncTable->WriteCon = hb_ctw_gt_WriteCon;
pFuncTable->WriteConW = hb_ctw_gt_WriteConW;
pFuncTable->GetCursorStyle = hb_ctw_gt_GetCursorStyle;
pFuncTable->SetCursorStyle = hb_ctw_gt_SetCursorStyle;
pFuncTable->GetColorStr = hb_ctw_gt_GetColorStr;
pFuncTable->SetColorStr = hb_ctw_gt_SetColorStr;
pFuncTable->ColorSelect = hb_ctw_gt_ColorSelect;
pFuncTable->GetColor = hb_ctw_gt_GetColor;
pFuncTable->GetColorData = hb_ctw_gt_GetColorData;
pFuncTable->GetScrCursor = hb_ctw_gt_GetScrCursor;
pFuncTable->GetScrChar = hb_ctw_gt_GetScrChar;
pFuncTable->GetScrUC = hb_ctw_gt_GetScrUC;
pFuncTable->GetChar = hb_ctw_gt_GetChar;
pFuncTable->PutChar = hb_ctw_gt_PutChar;
pFuncTable->Resize = hb_ctw_gt_Resize;
pFuncTable->Info = hb_ctw_gt_Info;
pFuncTable->Alert = hb_ctw_gt_Alert;
pFuncTable->ReadKey = hb_ctw_gt_ReadKey;
pFuncTable->RedrawDiff = hb_ctw_gt_RedrawDiff;
pFuncTable->Exit = hb_ctw_gt_Exit;
pFuncTable->MouseRow = hb_ctw_MouseRow;
pFuncTable->MouseCol = hb_ctw_MouseCol;
pFuncTable->MaxCol = hb_ctw_gt_MaxCol;
pFuncTable->MaxRow = hb_ctw_gt_MaxRow;
pFuncTable->GetPos = hb_ctw_gt_GetPos;
pFuncTable->SetPos = hb_ctw_gt_SetPos;
pFuncTable->WriteCon = hb_ctw_gt_WriteCon;
pFuncTable->WriteConW = hb_ctw_gt_WriteConW;
pFuncTable->GetCursorStyle = hb_ctw_gt_GetCursorStyle;
pFuncTable->SetCursorStyle = hb_ctw_gt_SetCursorStyle;
pFuncTable->GetColorStr = hb_ctw_gt_GetColorStr;
pFuncTable->SetColorStr = hb_ctw_gt_SetColorStr;
pFuncTable->ColorSelect = hb_ctw_gt_ColorSelect;
pFuncTable->GetColor = hb_ctw_gt_GetColor;
pFuncTable->GetColorData = hb_ctw_gt_GetColorData;
pFuncTable->GetScrCursor = hb_ctw_gt_GetScrCursor;
pFuncTable->GetScrChar = hb_ctw_gt_GetScrChar;
pFuncTable->GetScrUC = hb_ctw_gt_GetScrUC;
pFuncTable->GetChar = hb_ctw_gt_GetChar;
pFuncTable->PutChar = hb_ctw_gt_PutChar;
pFuncTable->Resize = hb_ctw_gt_Resize;
pFuncTable->Info = hb_ctw_gt_Info;
pFuncTable->Alert = hb_ctw_gt_Alert;
pFuncTable->ReadKey = hb_ctw_gt_ReadKey;
pFuncTable->RedrawDiff = hb_ctw_gt_RedrawDiff;
return HB_TRUE;
}
/* *********************************************************************** */
#define HB_GTSUPER NULL
#define HB_GTSUPER NULL
#include "hbgtreg.h"
/* *********************************************************************** */

View File

@@ -53,18 +53,18 @@
#ifndef HB_CTWIN_H_
#define HB_CTWIN_H_
#define HB_CTW_UNDEF -1
#define HB_CTW_HIDDEN 0
#define HB_CTW_VISIBLE 1
#define HB_CTW_UNDEF -1
#define HB_CTW_HIDDEN 0
#define HB_CTW_VISIBLE 1
#define HB_CTW_SHADOW_OFF -1
#define HB_CTW_SHADOW_UNDEF -2
#define HB_CTW_SHADOW_EXT -3
#define HB_CTW_SHADOW_EXT2 -4
#define HB_CTW_SHADOW_OFF -1
#define HB_CTW_SHADOW_UNDEF -2
#define HB_CTW_SHADOW_EXT -3
#define HB_CTW_SHADOW_EXT2 -4
#define HB_CTW_BOTTOM 0
#define HB_CTW_DEFAULT 1
#define HB_CTW_TOP 2
#define HB_CTW_BOTTOM 0
#define HB_CTW_DEFAULT 1
#define HB_CTW_TOP 2
HB_EXTERN_BEGIN

View File

@@ -87,11 +87,11 @@ static int ct_daysinmonth( int iMonth, HB_BOOL bLeap )
static int ct_daystomonth( int iMonth, HB_BOOL bLeap )
{
static const int iMonthes[] =
{ 0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };
static const int iMonthes[] = {
0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334 };
return ( ( iMonth < 1 && iMonth > 12 ) ? 0 : iMonthes[ iMonth - 1 ] +
( ( bLeap && iMonth > 2 ) ? 1 : 0 ) );
return ( iMonth < 1 && iMonth > 12 ) ? 0 : iMonthes[ iMonth - 1 ] +
( ( bLeap && iMonth > 2 ) ? 1 : 0 );
}
static int ct_doy( long lDate )
@@ -410,7 +410,7 @@ HB_FUNC( WEEK )
lDate = hb_dateEncode( iYear, iMonth, iDay );
}
if( !lDate )
if( ! lDate )
{
iWeek = 0;
}

View File

@@ -74,8 +74,8 @@ HB_FUNC( WAITPERIOD )
if( hb_pcount() > 0 )
{
s_dTimeSet = d;
s_dTimeCounter = d + hb_parnd( 1 ) / 100.0;
s_dTimeSet = d;
s_dTimeCounter = d + hb_parnd( 1 ) / 100.0;
}
if( d < s_dTimeSet )
@@ -90,9 +90,9 @@ static HB_BOOL _hb_timeValid( const char * szTime, HB_SIZE nLen, int * piDecode
if( nLen == 2 || nLen == 5 || nLen == 8 || nLen == 11 )
{
static const int sc_iMax[] = { 23, 59, 59, 99 };
int i, iVal;
HB_SIZE ul;
static const int sc_iMax[] = { 23, 59, 59, 99 };
int i, iVal;
HB_SIZE ul;
fValid = HB_TRUE;
for( ul = 0; fValid && ul < nLen; ++ul )
@@ -102,8 +102,8 @@ static HB_BOOL _hb_timeValid( const char * szTime, HB_SIZE nLen, int * piDecode
}
for( ul = 0, i = 0; fValid && ul < nLen; ul += 3, ++i )
{
iVal = 10 * ( szTime[ ul ] - '0' ) + ( szTime[ ul + 1 ] - '0' );
fValid = iVal <= sc_iMax[ i ];
iVal = 10 * ( szTime[ ul ] - '0' ) + ( szTime[ ul + 1 ] - '0' );
fValid = iVal <= sc_iMax[ i ];
if( piDecode )
piDecode[ i ] = iVal;
}
@@ -119,8 +119,8 @@ HB_FUNC( TIMEVALID )
HB_FUNC( SETTIME )
{
HB_BOOL fResult = HB_FALSE;
int iTime[ 4 ];
HB_BOOL fResult = HB_FALSE;
int iTime[ 4 ];
iTime[ 0 ] = iTime[ 1 ] = iTime[ 2 ] = iTime[ 3 ] = 0;
if( _hb_timeValid( hb_parc( 1 ), hb_parclen( 1 ), iTime ) )
@@ -132,16 +132,16 @@ HB_FUNC( SETTIME )
st.wMinute = ( WORD ) iTime[ 1 ];
st.wSecond = ( WORD ) iTime[ 2 ];
st.wMilliseconds = ( WORD ) iTime[ 3 ] * 10;
fResult = SetLocalTime( &st );
fResult = SetLocalTime( &st );
#elif defined( HB_OS_LINUX ) && ! defined( HB_OS_ANDROID ) && ! defined( __WATCOMC__ )
/* stime exists only in SVr4, SVID, X/OPEN and Linux */
HB_ULONG lNewTime;
time_t tm;
lNewTime = iTime[ 0 ] * 3600 + iTime[ 1 ] * 60 + iTime[ 2 ];
tm = time( NULL );
tm += lNewTime - ( tm % 86400 );
fResult = stime( &tm ) == 0;
lNewTime = iTime[ 0 ] * 3600 + iTime[ 1 ] * 60 + iTime[ 2 ];
tm = time( NULL );
tm += lNewTime - ( tm % 86400 );
fResult = stime( &tm ) == 0;
#endif
}
@@ -150,8 +150,8 @@ HB_FUNC( SETTIME )
HB_FUNC( SETDATE )
{
HB_BOOL fResult = HB_FALSE;
long lDate = hb_pardl( 1 );
HB_BOOL fResult = HB_FALSE;
long lDate = hb_pardl( 1 );
if( lDate )
{
@@ -170,13 +170,13 @@ HB_FUNC( SETDATE )
fResult = SetLocalTime( &st );
#elif defined( HB_OS_LINUX ) && ! defined( HB_OS_ANDROID ) && ! defined( __WATCOMC__ )
/* stime exists only in SVr4, SVID, X/OPEN and Linux */
long lNewDate;
time_t tm;
long lNewDate;
time_t tm;
lNewDate = lDate - hb_dateEncode( 1970, 1, 1 );
tm = time( NULL );
tm = lNewDate * 86400 + ( tm % 86400 );
fResult = stime( &tm ) == 0;
lNewDate = lDate - hb_dateEncode( 1970, 1, 1 );
tm = time( NULL );
tm = lNewDate * 86400 + ( tm % 86400 );
fResult = stime( &tm ) == 0;
#endif
}
}

View File

@@ -82,7 +82,7 @@ HB_FUNC( DIRMAKE )
if( hb_fsMkDir( hb_parcx( 1 ) ) )
hb_retni( 0 );
else
hb_retnint( - ( HB_MAXINT ) hb_fsOsError() );
hb_retnint( -( HB_MAXINT ) hb_fsOsError() );
}
HB_FUNC( DIRNAME )

View File

@@ -57,19 +57,19 @@
# include <unistd.h>
# if defined( HB_OS_DARWIN )
# include <crt_externs.h>
# define environ (*_NSGetEnviron())
# elif !defined( __WATCOMC__ )
# define environ ( *_NSGetEnviron() )
# elif ! defined( __WATCOMC__ )
extern char ** environ;
# endif
#elif defined( HB_OS_DOS )
# if defined( __DJGPP__ )
extern char ** environ;
# elif !defined( __WATCOMC__ )
# elif ! defined( __WATCOMC__ )
# define environ _environ
extern char ** _environ;
# endif
#elif defined( HB_OS_OS2 )
# if !defined( __WATCOMC__ )
# if ! defined( __WATCOMC__ )
extern char ** environ;
# endif
#elif defined( HB_OS_WIN ) && ! defined( HB_OS_WIN_CE )
@@ -127,7 +127,9 @@ HB_FUNC( ENVPARAM )
for( lpEnv = lpEnviron, lpDst = lpResult; *lpEnv; lpEnv++ )
{
do
{
*lpDst++ = *lpEnv++;
}
while( *lpEnv );
*lpDst++ = '\r';
*lpDst++ = '\n';

View File

@@ -86,8 +86,8 @@
typedef struct
{
PHB_FFIND ffind;
HB_FATTR ulAttr;
PHB_FFIND ffind;
HB_FATTR ulAttr;
} HB_FFDATA, * PHB_FFDATA;
static void hb_fileFindRelease( void * cargo )
@@ -100,7 +100,7 @@ static void hb_fileFindRelease( void * cargo )
static HB_TSD_NEW( s_FFData, sizeof( HB_FFDATA ), NULL, hb_fileFindRelease );
#define HB_GET_FFDATA() ( ( PHB_FFDATA ) hb_stackGetTSD( &s_FFData ) )
#define HB_GET_FFDATA() ( ( PHB_FFDATA ) hb_stackGetTSD( &s_FFData ) )
static PHB_FFIND _hb_fileStart( HB_BOOL fNext, HB_FATTR ulAttr )
{
@@ -121,11 +121,11 @@ static PHB_FFIND _hb_fileStart( HB_BOOL fNext, HB_FATTR ulAttr )
if( HB_ISNUM( 2 ) )
ulAttr = ( HB_FATTR ) hb_parnl( 2 );
pFFData->ulAttr = hb_parl( 3 ) ? ulAttr : HB_FA_ALL;
pFFData->ffind = hb_fsFindFirst( szFile, ulAttr );
pFFData->ffind = hb_fsFindFirst( szFile, ulAttr );
while( pFFData->ffind && pFFData->ulAttr &&
pFFData->ffind->attr != pFFData->ulAttr )
{
if( !hb_fsFindNext( pFFData->ffind ) )
if( ! hb_fsFindNext( pFFData->ffind ) )
{
hb_fsFindClose( pFFData->ffind );
pFFData->ffind = NULL;
@@ -137,7 +137,7 @@ static PHB_FFIND _hb_fileStart( HB_BOOL fNext, HB_FATTR ulAttr )
{
do
{
if( !hb_fsFindNext( pFFData->ffind ) )
if( ! hb_fsFindNext( pFFData->ffind ) )
{
hb_fsFindClose( pFFData->ffind );
pFFData->ffind = NULL;
@@ -219,7 +219,7 @@ HB_FUNC( SETFDATI )
pTime = hb_param( 2, HB_IT_STRING );
pDate = hb_param( 3, HB_IT_DATE );
}
lJulian = pDate ? hb_itemGetDL( pDate ) : -1;
lJulian = pDate ? hb_itemGetDL( pDate ) : -1;
if( pTime )
{
int hour = 0, minute = 0, second = 0, msec = 0;
@@ -279,14 +279,14 @@ HB_FUNC( FILEDELETE )
HB_FUNC( FILEMOVE )
{
hb_retnint( hb_fsRename( hb_parcx( 1 ),
hb_parcx( 2 ) ) ? 0 : - ( HB_MAXINT ) hb_fsOsError() );
hb_parcx( 2 ) ) ? 0 : -( HB_MAXINT ) hb_fsOsError() );
}
HB_FUNC_TRANSLATE( RENAMEFILE, FILEMOVE )
HB_FUNC( DELETEFILE )
{
hb_retnint( hb_fsDelete( hb_parcx( 1 ) ) ? 0 : - ( HB_MAXINT ) hb_fsOsError() );
hb_retnint( hb_fsDelete( hb_parcx( 1 ) ) ? 0 : -( HB_MAXINT ) hb_fsOsError() );
}
HB_FUNC( FILESMAX )

View File

@@ -314,14 +314,14 @@ HB_FUNC( RATE )
if( dAux > dPayment )
{
j = j - dScale;
j -= dScale;
dScale = dScale * 0.10;
if( ( dAux - dPayment ) < dEpsilon )
break;
}
else
j = j + dScale;
j += dScale;
} /* endwhile */

View File

@@ -55,8 +55,9 @@
HB_FUNC( LIKE )
{
const char * szPattern = hb_parc( 1 ),
* szString = hb_parc( 2 );
const char * szPattern = hb_parc( 1 );
const char * szString = hb_parc( 2 );
hb_retl( szPattern && szString &&
hb_strMatchWildExact( szString, szPattern ) );
}

View File

@@ -91,7 +91,7 @@ HB_FUNC( COMPLEMENT )
hb_retndlen( -dValue, iWidth, iDec );
}
else if( HB_IS_LOGICAL( pItem ) )
hb_retl( !hb_itemGetL( pItem ) );
hb_retl( ! hb_itemGetL( pItem ) );
else
hb_ret();
}

View File

@@ -90,7 +90,7 @@ HB_FUNC( NUMAT )
else
{
pcString += sIgnore;
sStrLen -= sIgnore;
sStrLen -= sIgnore;
}
nCounter = 0;

View File

@@ -89,7 +89,7 @@ HB_FUNC( CTON )
break;
if( iDigit >= iBase )
break;
if( nValue > ( nMax - iDigit ) / iBase )
if( nValue > ( nMax - iDigit ) / iBase )
{
nValue = 0;
break;

View File

@@ -111,7 +111,7 @@ HB_FUNC( CHARUNPACK )
HB_SIZE buf_size = 32768;
HB_SIZE i;
if( !( in[ 0 ] == 158 && in[ 1 ] == 158 ) )
if( ! ( in[ 0 ] == 158 && in[ 1 ] == 158 ) )
{
hb_retclen( ( char * ) in, len );
return;

View File

@@ -58,19 +58,19 @@
#include "ct.h"
/* defines */
#define DO_POS1_POSALPHA 0
#define DO_POS1_POSLOWER 1
#define DO_POS1_POSRANGE 2
#define DO_POS1_POSUPPER 3
#define DO_POS1_POSALPHA 0
#define DO_POS1_POSLOWER 1
#define DO_POS1_POSRANGE 2
#define DO_POS1_POSUPPER 3
/* helper function for the posxxx() functions */
static void do_pos1( int iSwitch )
{
if( HB_ISCHAR( 1 ) && /* all functions need string as 1st param */
if( HB_ISCHAR( 1 ) && /* all functions need string as 1st param */
( iSwitch != DO_POS1_POSRANGE || /* that's the only condition for all funcs _except_ POSRANGE */
( iSwitch == DO_POS1_POSRANGE && /* In addition, POSRANGE needs .. */
HB_ISCHAR( 2 ) && /* .. string as 2nd .. */
HB_ISCHAR( 3 ) ) ) ) /* .. and 3rd param */
HB_ISCHAR( 2 ) && /* .. string as 2nd .. */
HB_ISCHAR( 3 ) ) ) ) /* .. and 3rd param */
{
const unsigned char * pcString, * puc;
HB_SIZE sStrLen;
@@ -141,7 +141,7 @@ static void do_pos1( int iSwitch )
break;
}
if( ( iMode && !iDoRet ) || ( !iMode && iDoRet ) )
if( ( iMode && ! iDoRet ) || ( ! iMode && iDoRet ) )
{
hb_retns( puc - pcString + 1 );
return;

View File

@@ -89,7 +89,7 @@ HB_FUNC( RANGEREM )
else
iBool &= ( ( *pc ) <= ucChar2 );
if( !iBool )
if( ! iBool )
{
*( pcRet + sRetIndex ) = *pc;
sRetIndex++;

View File

@@ -55,9 +55,9 @@
#include "ct.h"
/* defines */
#define DO_REMOVE_REMALL 0
#define DO_REMOVE_REMLEFT 1
#define DO_REMOVE_REMRIGHT 2
#define DO_REMOVE_REMALL 0
#define DO_REMOVE_REMLEFT 1
#define DO_REMOVE_REMRIGHT 2
static const HB_ERRCODE sulErrorSubcodes[] = {
CT_ERROR_REMALL,

View File

@@ -55,9 +55,9 @@
#include "ct.h"
/* defines */
#define DO_REPLACE_REPLALL 0
#define DO_REPLACE_REPLLEFT 1
#define DO_REPLACE_REPLRIGHT 2
#define DO_REPLACE_REPLALL 0
#define DO_REPLACE_REPLLEFT 1
#define DO_REPLACE_REPLRIGHT 2
static const HB_ERRCODE sulErrorSubcodes[] = {
CT_ERROR_REPLALL,

View File

@@ -129,7 +129,7 @@ HB_FUNC( SAYSPREAD )
nPos = nLen >> 1;
nLen = nLen & 1;
if( !nLen )
if( ! nLen )
{
nLen = 2;
--nPos;

View File

@@ -54,6 +54,6 @@
HB_FUNC( SETLASTKEY )
{
hb_inkeySetLast( hb_parni( 1 ) );
hb_retc_null();
hb_inkeySetLast( hb_parni( 1 ) );
hb_retc_null();
}

View File

@@ -55,7 +55,7 @@
#include "ct.h"
#include <limits.h>
#define MATRIXELEMENT( __row, __col ) *( piPenalty + ( ( __row ) * ( sStrLen2 + 1 ) ) + ( __col ) )
#define MATRIXELEMENT( __row, __col ) *( piPenalty + ( ( __row ) * ( sStrLen2 + 1 ) ) + ( __col ) )
static int min3( int a, int b, int c )
{
@@ -71,34 +71,34 @@ HB_FUNC( STRDIFF )
if( HB_ISCHAR( 1 ) || HB_ISCHAR( 2 ) )
{
/* get parameters */
const char * pcStr1, * pcStr2;
HB_SIZE sStrLen1, sStrLen2;
int iReplace, iDelete, iInsert;
int iAtLike = ct_getatlike();
char cAtLike = ct_getatlikechar();
int * piPenalty;
HB_SIZE sRowCnt, sColCnt;
const char * pcStr1, * pcStr2;
HB_SIZE sStrLen1, sStrLen2;
int iReplace, iDelete, iInsert;
int iAtLike = ct_getatlike();
char cAtLike = ct_getatlikechar();
int * piPenalty;
HB_SIZE sRowCnt, sColCnt;
if( HB_ISCHAR( 1 ) )
{
pcStr1 = hb_parc( 1 );
sStrLen1 = hb_parclen( 1 );
pcStr1 = hb_parc( 1 );
sStrLen1 = hb_parclen( 1 );
}
else
{
pcStr1 = "";
sStrLen1 = 0;
pcStr1 = "";
sStrLen1 = 0;
}
if( HB_ISCHAR( 2 ) )
{
pcStr2 = hb_parc( 2 );
sStrLen2 = hb_parclen( 2 );
pcStr2 = hb_parc( 2 );
sStrLen2 = hb_parclen( 2 );
}
else
{
pcStr2 = "";
sStrLen2 = 0;
pcStr2 = "";
sStrLen2 = 0;
}
/* check for memory consumption */
@@ -133,10 +133,10 @@ HB_FUNC( STRDIFF )
else
iInsert = 1;
piPenalty = ( int * ) hb_xgrab( ( sStrLen1 + 1 ) *
( sStrLen2 + 1 ) * sizeof( int ) );
piPenalty = ( int * ) hb_xgrab( ( sStrLen1 + 1 ) *
( sStrLen2 + 1 ) * sizeof( int ) );
MATRIXELEMENT( 0, 0 ) = 0;
MATRIXELEMENT( 0, 0 ) = 0;
for( sColCnt = 0; sColCnt <= sStrLen2 - 1; sColCnt++ )
{
MATRIXELEMENT( 0, sColCnt + 1 ) = MATRIXELEMENT( 0, sColCnt ) + iInsert;

View File

@@ -309,7 +309,7 @@ HB_FUNC( TABPACK )
sTabIndex = 0;
sIndex++;
}
else if( cChar == HB_CHAR_SOFT1 && !iIgnore141 )
else if( cChar == HB_CHAR_SOFT1 && ! iIgnore141 )
{
/* soft carriage return */

View File

@@ -67,15 +67,15 @@ static const HB_SIZE sc_sSeparatorStrLen = 26;
/* static data */
/* even if these are chars, variable must be int, since we need an extra -1 */
static int s_iPreSeparator = -1; /* TODO: make this threadsafe */
static int s_iPreSeparator = -1; /* TODO: make this threadsafe */
static int s_iPostSeparator = -1; /* TODO: make this threadsafe */
/* defines */
#define DO_TOKEN1_TOKEN 0
#define DO_TOKEN1_NUMTOKEN 1
#define DO_TOKEN1_ATTOKEN 2
#define DO_TOKEN1_TOKENLOWER 3
#define DO_TOKEN1_TOKENUPPER 4
#define DO_TOKEN1_TOKEN 0
#define DO_TOKEN1_NUMTOKEN 1
#define DO_TOKEN1_ATTOKEN 2
#define DO_TOKEN1_TOKENLOWER 3
#define DO_TOKEN1_TOKENUPPER 4
/* helper function for the token function group I */
static void do_token1( int iSwitch )
@@ -280,12 +280,12 @@ static void do_token1( int iSwitch )
{
if( nSkip == HB_SIZE_MAX )
{
const char *t;
const char * t;
HB_BOOL bLast = HB_TRUE;
for( t = pc + 1; t < pcString + sStrLen; t++ )
{
if( !memchr( pcSeparatorStr, *t, sSeparatorStrLen ) )
if( ! memchr( pcSeparatorStr, *t, sSeparatorStrLen ) )
{
bLast = HB_FALSE;
break;
@@ -381,7 +381,7 @@ static void do_token1( int iSwitch )
if( pSubst != NULL )
hb_itemReturnRelease( pSubst );
else if( !iNoRef )
else if( ! iNoRef )
hb_retc_null();
else
hb_retl( HB_FALSE );
@@ -404,7 +404,7 @@ static void do_token1( int iSwitch )
}
if( pSubst != NULL )
hb_itemReturnRelease( pSubst );
else if( !iNoRef )
else if( ! iNoRef )
hb_retc_null();
else
hb_retl( HB_FALSE );

View File

@@ -65,13 +65,13 @@
/* static functions for token environment management */
#define TOKEN_ENVIRONMENT_STEP 100
#define TOKEN_ENVIRONMENT_STEP 100
typedef struct _TOKEN_POSITION
{
HB_SIZE sStartPos; /* relative 0-based index of first char of token */
HB_SIZE sEndPos; /* relative 0-based index of first char BEHIND token,
so that length = sEndPos-sStartPos */
so that length = sEndPos-sStartPos */
} TOKEN_POSITION;
typedef TOKEN_POSITION * TOKEN_ENVIRONMENT;
@@ -175,7 +175,8 @@ static int sTokEnvSetPtr( TOKEN_ENVIRONMENT env, HB_SIZE sCnt )
/* decrement tokenizing pointer by one */
/* sTokEnvDecPtr currently not used ! */
/* static int sTokEnvDecPtr( TOKEN_ENVIRONMENT env )
#if 0
static int sTokEnvDecPtr( TOKEN_ENVIRONMENT env )
{
if( env[ 1 ].sStartPos <= 0 )
return 0;
@@ -184,7 +185,8 @@ static int sTokEnvSetPtr( TOKEN_ENVIRONMENT env, HB_SIZE sCnt )
env[ 1 ].sStartPos--;
return 1;
}
} */
}
#endif
/* get value of tokenizing pointer */
static HB_SIZE sTokEnvGetPtr( TOKEN_ENVIRONMENT env )
@@ -230,7 +232,7 @@ static void sTokExit( void * cargo )
static void sTokSet( TOKEN_ENVIRONMENT env )
{
if( !s_fInit && env )
if( ! s_fInit && env )
{
hb_vmAtExit( sTokExit, NULL );
s_fInit = HB_TRUE;
@@ -320,7 +322,7 @@ HB_FUNC( TOKENINIT )
else
sTokenPosition.sEndPos = pc - pcString;
if( !sTokEnvAddPos( &sTokenEnvironment, &sTokenPosition ) )
if( ! sTokEnvAddPos( &sTokenEnvironment, &sTokenPosition ) )
{
int iArgErrorMode = ct_getargerrormode();

View File

@@ -182,7 +182,7 @@ HB_FUNC( SETFONT )
int count = 256;
int height = 16;
if( !area )
if( ! area )
area = 1;
if( HB_ISNUM( 3 ) )
offset = hb_parni( 3 );
@@ -193,7 +193,7 @@ HB_FUNC( SETFONT )
#if defined( __DJGPP__ )
# ifndef __tb_size
# define __tb_size _go32_info_block.size_of_transfer_buffer
# define __tb_size _go32_info_block.size_of_transfer_buffer
# endif
{
__dpmi_regs r;

View File

@@ -105,7 +105,7 @@ HB_FUNC( WORDREPL )
if( iMode )
{
/* always replace */
*( pcRet + ( pc - pcString ) ) = *( pcReplace + sReplIndex );
*( pcRet + ( pc - pcString ) ) = *( pcReplace + sReplIndex );
*( pcRet + ( pc - pcString ) + 1 ) = *( pcReplace + sReplIndex + 1 );
if( iMultiPass )
@@ -118,7 +118,7 @@ HB_FUNC( WORDREPL )
/* replace only if pc is an even position */
if( ( ( pc - pcString ) % 2 ) == 0 )
{
*( pcRet + ( pc - pcString ) ) = *( pcReplace + sReplIndex );
*( pcRet + ( pc - pcString ) ) = *( pcReplace + sReplIndex );
*( pcRet + ( pc - pcString ) + 1 ) = *( pcReplace + sReplIndex + 1 );
/* parse pcString in steps of two characters */
pc += 2;

View File

@@ -90,7 +90,7 @@ HB_FUNC( WORDTOCHAR )
*( pcRet + sRetIndex + 1 ) = *( pcString + sIndex + 1 );
if( !iNoReplace &&
if( ! iNoReplace &&
( ( pc = ct_at_exact_forward( pcSearch, sSearchLen,
pcRet + sRetIndex, 2,
&sMatchStrLen ) ) != NULL ) &&
@@ -102,7 +102,7 @@ HB_FUNC( WORDTOCHAR )
*( pcRet + sRetIndex ) = *( pcReplace + sReplIndex );
if( !iMultiPass )
if( ! iMultiPass )
iNoReplace = 1; /* just copy next char without searching & replacing */
}
else

View File

@@ -62,61 +62,61 @@
#include "hbinit.h"
/******************************************************
*
* Memory file system
*
*******************************************************/
*
* Memory file system
*
*******************************************************/
/* change this define for public hb_memfs*() API */
#ifdef HB_MEMFS_PUBLIC_API
#define HB_MEMFS_EXPORT
#else
#define HB_MEMFS_EXPORT static
#define HB_MEMFS_EXPORT static
#endif
#define HB_MEMFS_INITSIZE 16
/* File access flags */
#define FOX_READ 1
#define FOX_WRITE 2
#define FOX_READWRITE 3
#define FOX_READ 1
#define FOX_WRITE 2
#define FOX_READWRITE 3
/* File sharing flags */
#define FOX_DENYNONE 0
#define FOX_DENYREAD 16
#define FOX_DENYWRITE 32
#define FOX_EXCLUSIVE 48
#define FOX_DENYFLAGS 48
#define FOX_DENYNONE 0
#define FOX_DENYREAD 16
#define FOX_DENYWRITE 32
#define FOX_EXCLUSIVE 48
#define FOX_DENYFLAGS 48
typedef struct _HB_MEMFS_INODE
{
HB_FOFFSET llSize;
HB_FOFFSET llAlloc;
char * pData;
char * szName;
unsigned int uiCount;
unsigned int uiCountRead, uiCountWrite;
HB_USHORT uiDeny;
HB_FOFFSET llSize;
HB_FOFFSET llAlloc;
char * pData;
char * szName;
unsigned int uiCount;
unsigned int uiCountRead, uiCountWrite;
HB_USHORT uiDeny;
} HB_MEMFS_INODE, * PHB_MEMFS_INODE;
typedef struct _HB_MEMFS_FILE
{
PHB_MEMFS_INODE pInode;
HB_FOFFSET llPos;
HB_USHORT uiFlags;
PHB_MEMFS_INODE pInode;
HB_FOFFSET llPos;
HB_USHORT uiFlags;
} HB_MEMFS_FILE, * PHB_MEMFS_FILE;
typedef struct _HB_MEMFS_FS
{
HB_ULONG ulInodeCount;
HB_ULONG ulInodeAlloc;
PHB_MEMFS_INODE * pInodes;
HB_ULONG ulFileAlloc;
HB_ULONG ulFileLast;
PHB_MEMFS_FILE * pFiles;
HB_ULONG ulInodeCount;
HB_ULONG ulInodeAlloc;
PHB_MEMFS_INODE * pInodes;
HB_ULONG ulFileAlloc;
HB_ULONG ulFileLast;
PHB_MEMFS_FILE * pFiles;
} HB_MEMFS_FS, * PHB_MEMFS_FS;
@@ -125,8 +125,8 @@ static HB_ERRCODE s_error;
static HB_CRITICAL_NEW( s_mtx );
#define HB_MEMFSMT_LOCK() hb_threadEnterCriticalSection( &s_mtx )
#define HB_MEMFSMT_UNLOCK() hb_threadLeaveCriticalSection( &s_mtx )
#define HB_MEMFSMT_LOCK() hb_threadEnterCriticalSection( &s_mtx )
#define HB_MEMFSMT_UNLOCK() hb_threadLeaveCriticalSection( &s_mtx )
static void memfsInodeFree( PHB_MEMFS_INODE pInode );
@@ -191,7 +191,7 @@ static HB_ULONG memfsInodeFind( const char * szName, HB_ULONG * pulPos )
}
static PHB_MEMFS_INODE memfsInodeAlloc( const char* szName )
static PHB_MEMFS_INODE memfsInodeAlloc( const char * szName )
{
PHB_MEMFS_INODE pInode = ( PHB_MEMFS_INODE ) hb_xgrab( sizeof( HB_MEMFS_INODE ) );
HB_ULONG ulInode = 0;
@@ -239,7 +239,7 @@ static void memfsInodeFree( PHB_MEMFS_INODE pInode )
static PHB_MEMFS_FILE memfsFileAlloc( PHB_MEMFS_INODE pInode )
{
PHB_MEMFS_FILE pFile = ( PHB_MEMFS_FILE ) hb_xgrab( sizeof( HB_MEMFS_FILE ) );
PHB_MEMFS_FILE pFile = ( PHB_MEMFS_FILE ) hb_xgrab( sizeof( HB_MEMFS_FILE ) );
pFile->pInode = pInode;
pFile->llPos = 0;
@@ -366,16 +366,16 @@ HB_MEMFS_EXPORT HB_BOOL hb_memfsRename( const char * szName, const char * szNewN
HB_MEMFS_EXPORT HB_FHANDLE hb_memfsOpen( const char * szName, HB_USHORT uiFlags )
{
PHB_MEMFS_FILE pFile = NULL;
HB_FHANDLE hFile;
HB_ULONG ulInode;
HB_ERRCODE uiError = 0;
PHB_MEMFS_FILE pFile = NULL;
HB_FHANDLE hFile;
HB_ULONG ulInode;
HB_ERRCODE uiError = 0;
/*
Recalculate flags. Bit should indicate feature: 1=read, 2=write, 16=denyread, 32=denywrite.
So, 3=readwrite, 48=exclusive.
Compatibility mode == DenyNone.
*/
Recalculate flags. Bit should indicate feature: 1=read, 2=write, 16=denyread, 32=denywrite.
So, 3=readwrite, 48=exclusive.
Compatibility mode == DenyNone.
*/
uiFlags = ( uiFlags & ( FO_CREAT | FO_TRUNC | FO_EXCL ) ) |
( uiFlags & FO_READWRITE ? FOX_READWRITE : ( uiFlags & FO_WRITE ? FOX_WRITE : FOX_READ ) ) |
( ( uiFlags & 0xf0 ) == FO_EXCLUSIVE ? FOX_EXCLUSIVE :
@@ -441,7 +441,7 @@ HB_MEMFS_EXPORT HB_FHANDLE hb_memfsOpen( const char * szName, HB_USHORT uiFlags
s_error = uiError;
if( !pFile )
if( ! pFile )
{
HB_MEMFSMT_UNLOCK();
return FS_ERROR;
@@ -461,8 +461,8 @@ HB_MEMFS_EXPORT HB_FHANDLE hb_memfsOpen( const char * szName, HB_USHORT uiFlags
HB_MEMFS_EXPORT void hb_memfsClose( HB_FHANDLE hFile )
{
PHB_MEMFS_FILE pFile;
PHB_MEMFS_INODE pInode;
PHB_MEMFS_FILE pFile;
PHB_MEMFS_INODE pInode;
HB_MEMFSMT_LOCK();
if( ( pFile = memfsHandleToFile( hFile ) ) == NULL )
@@ -492,16 +492,16 @@ HB_MEMFS_EXPORT void hb_memfsClose( HB_FHANDLE hFile )
HB_MEMFS_EXPORT HB_SIZE hb_memfsReadAt( HB_FHANDLE hFile, void * pBuff, HB_SIZE nCount, HB_FOFFSET llOffset )
{
PHB_MEMFS_FILE pFile;
PHB_MEMFS_INODE pInode;
HB_SIZE nRead;
PHB_MEMFS_FILE pFile;
PHB_MEMFS_INODE pInode;
HB_SIZE nRead;
if( ( pFile = memfsHandleToFile( hFile ) ) == NULL )
return 0; /* invalid handle */
return 0; /* invalid handle */
pInode = pFile->pInode;
if( ( pFile->uiFlags & FOX_READ ) == 0 )
return 0; /* access denied */
return 0; /* access denied */
if( llOffset < 0 || pInode->llSize <= llOffset )
return 0;
@@ -521,15 +521,15 @@ HB_MEMFS_EXPORT HB_SIZE hb_memfsReadAt( HB_FHANDLE hFile, void * pBuff, HB_SIZE
HB_MEMFS_EXPORT HB_SIZE hb_memfsWriteAt( HB_FHANDLE hFile, const void * pBuff, HB_SIZE nCount, HB_FOFFSET llOffset )
{
PHB_MEMFS_FILE pFile;
PHB_MEMFS_INODE pInode;
PHB_MEMFS_FILE pFile;
PHB_MEMFS_INODE pInode;
if( ( pFile = memfsHandleToFile( hFile ) ) == NULL )
return 0; /* invalid handle */
return 0; /* invalid handle */
pInode = pFile->pInode;
if( ( pFile->uiFlags & FOX_WRITE ) == 0 )
return 0; /* access denied */
return 0; /* access denied */
if( llOffset < 0 )
return 0;
@@ -539,7 +539,7 @@ HB_MEMFS_EXPORT HB_SIZE hb_memfsWriteAt( HB_FHANDLE hFile, const void * pBuff, H
/* Reallocate if neccesary */
if( pInode->llAlloc < llOffset + ( HB_FOFFSET ) nCount )
{
HB_FOFFSET llNewAlloc = pInode->llAlloc + ( pInode->llAlloc >> 1 );
HB_FOFFSET llNewAlloc = pInode->llAlloc + ( pInode->llAlloc >> 1 );
if( llNewAlloc < llOffset + ( HB_FOFFSET ) nCount )
llNewAlloc = llOffset + ( HB_FOFFSET ) nCount;
@@ -574,16 +574,16 @@ HB_MEMFS_EXPORT HB_SIZE hb_memfsWrite( HB_FHANDLE hFile, const void * pBuff, HB_
HB_MEMFS_EXPORT HB_BOOL hb_memfsTruncAt( HB_FHANDLE hFile, HB_FOFFSET llOffset )
{
PHB_MEMFS_FILE pFile;
PHB_MEMFS_INODE pInode;
HB_FOFFSET llNewAlloc;
PHB_MEMFS_FILE pFile;
PHB_MEMFS_INODE pInode;
HB_FOFFSET llNewAlloc;
if( ( pFile = memfsHandleToFile( hFile ) ) == NULL )
return HB_FALSE; /* invalid handle */
return HB_FALSE; /* invalid handle */
pInode = pFile->pInode;
if( ( pFile->uiFlags & FOX_WRITE ) == 0 )
return HB_FALSE; /* access denied */
return HB_FALSE; /* access denied */
if( llOffset < 0 )
return HB_FALSE;
@@ -618,12 +618,12 @@ HB_MEMFS_EXPORT HB_BOOL hb_memfsTruncAt( HB_FHANDLE hFile, HB_FOFFSET llOffset )
HB_MEMFS_EXPORT HB_FOFFSET hb_memfsSeek( HB_FHANDLE hFile, HB_FOFFSET llOffset, HB_USHORT uiFlags )
{
PHB_MEMFS_FILE pFile;
PHB_MEMFS_INODE pInode;
HB_FOFFSET llPos;
PHB_MEMFS_FILE pFile;
PHB_MEMFS_INODE pInode;
HB_FOFFSET llPos;
if( ( pFile = memfsHandleToFile( hFile ) ) == NULL )
return 0; /* invalid handle */
return 0; /* invalid handle */
pInode = pFile->pInode;
HB_MEMFSMT_LOCK();
@@ -650,14 +650,12 @@ HB_MEMFS_EXPORT void hb_memfsFlush( HB_FHANDLE hFile, HB_BOOL fDirty )
{
HB_SYMBOL_UNUSED( hFile );
HB_SYMBOL_UNUSED( fDirty );
return;
}
HB_MEMFS_EXPORT void hb_memfsCommit( HB_FHANDLE hFile )
{
HB_SYMBOL_UNUSED( hFile );
return;
}
@@ -680,13 +678,13 @@ HB_MEMFS_EXPORT int hb_memfsLockTest( HB_FHANDLE hFile, HB_FOFFSET ulStart, HB_F
}
/******************************************************
*
* I/O Driver for Memory file system
*
*******************************************************/
*
* I/O Driver for Memory file system
*
*******************************************************/
#define FILE_PREFIX "mem:"
#define FILE_PREFIX_LEN strlen( FILE_PREFIX )
#define FILE_PREFIX "mem:"
#define FILE_PREFIX_LEN strlen( FILE_PREFIX )
typedef struct _HB_FILE
{
@@ -749,7 +747,8 @@ static PHB_FILE s_fileOpen( const char * szName, const char * szDefExt, HB_USHOR
hb_strncpy( szNameNew, szName + FILE_PREFIX_LEN, HB_PATH_MAX );
nLen = strlen( szNameNew );
do {
do
{
if( nLen == 0 || strchr( HB_OS_PATH_DELIM_CHR_LIST, szNameNew[ nLen - 1 ] ) )
{
hb_strncat( szNameNew, szDefExt, HB_PATH_MAX );
@@ -891,6 +890,6 @@ HB_CALL_ON_STARTUP_END( _hb_file_memio_init_ )
#if defined( HB_PRAGMA_STARTUP )
#pragma startup _hb_file_memio_init_
#elif defined( HB_DATASEG_STARTUP )
#define HB_DATASEG_BODY HB_DATASEG_FUNC( _hb_file_memio_init_ )
#define HB_DATASEG_BODY HB_DATASEG_FUNC( _hb_file_memio_init_ )
#include "hbiniseg.h"
#endif

View File

@@ -60,55 +60,55 @@
#include "hbnetio.ch"
/* file name prefix used by this file IO implementation */
#define NETIO_FILE_PREFIX "net:"
#define NETIO_FILE_PREFIX_LEN strlen( NETIO_FILE_PREFIX )
#define NETIO_FILE_PREFIX "net:"
#define NETIO_FILE_PREFIX_LEN strlen( NETIO_FILE_PREFIX )
/* default server address, port and timeout */
#define NETIO_DEFAULT_SERVER "127.0.0.1"
#define NETIO_DEFAULT_PORT 2941
#define NETIO_DEFAULT_TIMEOUT -1
#define NETIO_DEFAULT_SERVER "127.0.0.1"
#define NETIO_DEFAULT_PORT 2941
#define NETIO_DEFAULT_TIMEOUT -1
/* message size */
#define NETIO_MSGLEN 24
#define NETIO_MSGLEN 24
/* maximal number of open files per connection */
#define NETIO_FILES_MAX 8192
#define NETIO_FILES_MAX 8192
/* maximal length of server name */
#define NETIO_SERVERNAME_MAX 256
#define NETIO_SERVERNAME_MAX 256
/* maximal length of password */
#define NETIO_PASSWD_MAX 64
#define NETIO_PASSWD_MAX 64
/* login string */
#define NETIO_LOGINSTRID "HarbourFileTcpIpServer\007"
#define NETIO_LOGINSTRID "HarbourFileTcpIpServer\007"
/* messages */
#define NETIO_LOGIN 1
#define NETIO_EXISTS 2
#define NETIO_DELETE 3
#define NETIO_RENAME 4
#define NETIO_COMMIT 5
#define NETIO_SIZE 6
#define NETIO_TRUNC 7
#define NETIO_READ 8
#define NETIO_WRITE 9
#define NETIO_LOCK 10
#define NETIO_UNLOCK 11
#define NETIO_OPEN 12
#define NETIO_CLOSE 13
#define NETIO_ERROR 14
#define NETIO_SYNC 15
#define NETIO_PROCIS 16
#define NETIO_PROC 17
#define NETIO_PROCW 18
#define NETIO_FUNC 19
#define NETIO_FUNCCTRL 20
#define NETIO_SRVITEM 21
#define NETIO_SRVDATA 22
#define NETIO_SRVCLOSE 23
#define NETIO_TESTLOCK 24
#define NETIO_CONNECTED 0x4321DEAD
#define NETIO_LOGIN 1
#define NETIO_EXISTS 2
#define NETIO_DELETE 3
#define NETIO_RENAME 4
#define NETIO_COMMIT 5
#define NETIO_SIZE 6
#define NETIO_TRUNC 7
#define NETIO_READ 8
#define NETIO_WRITE 9
#define NETIO_LOCK 10
#define NETIO_UNLOCK 11
#define NETIO_OPEN 12
#define NETIO_CLOSE 13
#define NETIO_ERROR 14
#define NETIO_SYNC 15
#define NETIO_PROCIS 16
#define NETIO_PROC 17
#define NETIO_PROCW 18
#define NETIO_FUNC 19
#define NETIO_FUNCCTRL 20
#define NETIO_SRVITEM 21
#define NETIO_SRVDATA 22
#define NETIO_SRVCLOSE 23
#define NETIO_TESTLOCK 24
#define NETIO_CONNECTED 0x4321DEAD
/* messages format */
/* { NETIO_LOGIN, len[ 2 ]... } + loginstr[ len ] -> { NETIO_LOGIN, NETIO_CONNECTED[ 4 ], ... } */

View File

@@ -112,53 +112,53 @@ HB_SRVDATA, * PHB_SRVDATA;
typedef struct _HB_CONCLI
{
HB_COUNTER used;
HB_COUNTER usrcount;
PHB_ITEM mutex;
HB_ERRCODE errcode;
int timeout;
int port;
HB_SOCKET sd;
PHB_ZNETSTREAM zstream;
PHB_SRVDATA srvdata;
HB_COUNTER used;
HB_COUNTER usrcount;
PHB_ITEM mutex;
HB_ERRCODE errcode;
int timeout;
int port;
HB_SOCKET sd;
PHB_ZNETSTREAM zstream;
PHB_SRVDATA srvdata;
struct _HB_CONCLI * next;
int level;
int strategy;
int passlen;
char passwd[ NETIO_PASSWD_MAX ];
char server[ 1 ];
int level;
int strategy;
int passlen;
char passwd[ NETIO_PASSWD_MAX ];
char server[ 1 ];
}
HB_CONCLI, * PHB_CONCLI;
typedef struct _HB_FILE
{
const HB_FILE_FUNCS * pFuncs;
PHB_CONCLI conn;
HB_USHORT fd;
PHB_CONCLI conn;
HB_USHORT fd;
}
HB_FILE;
typedef struct
{
int timeout;
int port;
int level;
int strategy;
int passlen;
char server[ NETIO_SERVERNAME_MAX ];
char passwd[ NETIO_PASSWD_MAX ];
int timeout;
int port;
int level;
int strategy;
int passlen;
char server[ NETIO_SERVERNAME_MAX ];
char passwd[ NETIO_PASSWD_MAX ];
} HB_CONDATA, * PHB_CONDATA;
/* MT macros */
#define HB_NETIO_LOCK() hb_threadEnterCriticalSection( &s_netioMtx )
#define HB_NETIO_UNLOCK() hb_threadLeaveCriticalSection( &s_netioMtx )
#define HB_NETIO_LOCK() hb_threadEnterCriticalSection( &s_netioMtx )
#define HB_NETIO_UNLOCK() hb_threadLeaveCriticalSection( &s_netioMtx )
static HB_CRITICAL_NEW( s_netioMtx );
static HB_TSD_NEW( s_conData, sizeof( HB_CONDATA ), NULL, NULL );
static PHB_CONCLI s_connections = NULL;
static HB_BOOL s_defaultInit = HB_TRUE;
static HB_BOOL s_defaultInit = HB_TRUE;
static HB_CONDATA s_defaultConn = {
NETIO_DEFAULT_TIMEOUT,
NETIO_DEFAULT_PORT,
@@ -173,7 +173,7 @@ static HB_BOOL s_fInit = HB_TRUE;
static const HB_FILE_FUNCS * s_fileMethods( void );
#define NETIO_TIMEOUT -1
#define NETIO_TIMEOUT -1
static void hb_errRT_NETIO( HB_ERRCODE errGenCode, HB_ERRCODE errSubCode,
HB_ERRCODE errOsCode, const char * szDescription,
@@ -277,7 +277,7 @@ static HB_BOOL s_fileCloseSrvData( PHB_CONCLI conn, int iStreamID )
if( pSrvData->data )
hb_xfree( pSrvData->data );
hb_xfree( pSrvData );
if( !conn->srvdata )
if( ! conn->srvdata )
hb_atomic_dec( &conn->used );
return HB_TRUE;
}
@@ -291,7 +291,7 @@ static void s_fileNewSrvData( PHB_CONCLI conn, int iStreamID, int iType )
{
PHB_SRVDATA pSrvData = s_fileFindSrvData( conn, iStreamID, 0 );
if( !pSrvData )
if( ! pSrvData )
{
pSrvData = ( PHB_SRVDATA ) memset( hb_xgrab( sizeof( HB_SRVDATA ) ),
0, sizeof( HB_SRVDATA ) );
@@ -302,7 +302,7 @@ static void s_fileNewSrvData( PHB_CONCLI conn, int iStreamID, int iType )
else if( iType == NETIO_SRVDATA )
pSrvData->maxsize = 0x10000;
pSrvData->next = conn->srvdata;
if( !conn->srvdata )
if( ! conn->srvdata )
hb_atomic_inc( &conn->used );
conn->srvdata = pSrvData;
}
@@ -416,7 +416,7 @@ static HB_BOOL s_fileSendMsg( PHB_CONCLI conn, HB_BYTE * msgbuf,
hb_znetFlush( conn->zstream, conn->sd, NETIO_TIMEOUT ) != 0 )
{
conn->errcode = hb_socketGetError();
if( !fNoError )
if( ! fNoError )
hb_errRT_NETIO( EG_WRITE, 1002, conn->errcode, NULL, HB_ERR_FUNCNAME );
}
else if( fWait )
@@ -428,7 +428,7 @@ static HB_BOOL s_fileSendMsg( PHB_CONCLI conn, HB_BYTE * msgbuf,
if( s_fileRecvAll( conn, msgbuf, NETIO_MSGLEN ) != NETIO_MSGLEN )
{
conn->errcode = hb_socketGetError();
if( !fNoError )
if( ! fNoError )
hb_errRT_NETIO( EG_READ, 1003, conn->errcode, NULL, HB_ERR_FUNCNAME );
break;
}
@@ -442,7 +442,7 @@ static HB_BOOL s_fileSendMsg( PHB_CONCLI conn, HB_BYTE * msgbuf,
len = HB_GET_LE_INT32( &msgbuf[ 8 ] );
if( len > 0 )
{
if( !s_fileRecvSrvData( conn, len, iStreamID, iResult ) )
if( ! s_fileRecvSrvData( conn, len, iStreamID, iResult ) )
break;
}
}
@@ -456,7 +456,7 @@ static HB_BOOL s_fileSendMsg( PHB_CONCLI conn, HB_BYTE * msgbuf,
else if( iResult != iMsg )
{
conn->errcode = NETIO_ERR_UNKNOWN_COMMAND;
if( !fNoError )
if( ! fNoError )
hb_errRT_NETIO( EG_UNSUPPORTED, 1004, 0, NULL, HB_ERR_FUNCNAME );
}
else
@@ -471,7 +471,7 @@ static HB_BOOL s_fileSendMsg( PHB_CONCLI conn, HB_BYTE * msgbuf,
else
{
conn->errcode = hb_socketGetError();
if( !fNoError )
if( ! fNoError )
hb_errRT_NETIO( EG_WRITE, 1005, conn->errcode, NULL, HB_ERR_FUNCNAME );
}
@@ -497,7 +497,7 @@ static HB_BOOL s_fileProcessData( PHB_CONCLI conn )
len = HB_GET_LE_INT32( &msgbuf[ 8 ] );
if( len > 0 )
{
if( !s_fileRecvSrvData( conn, len, iStreamID, iMsg ) )
if( ! s_fileRecvSrvData( conn, len, iStreamID, iMsg ) )
{
fResult = HB_FALSE;
break;
@@ -676,7 +676,7 @@ static void s_fileUsrConnect( PHB_CONCLI conn )
static HB_BOOL s_fileConLock( PHB_CONCLI conn )
{
return !conn->mutex || hb_threadMutexLock( conn->mutex );
return ! conn->mutex || hb_threadMutexLock( conn->mutex );
}
static void s_fileConUnlock( PHB_CONCLI conn )
@@ -738,13 +738,13 @@ static const char * s_fileDecode( const char * pszFilename,
if( !pth || ( psz && psz < pth ) )
{
pth = psz;
if( !pth )
if( ! pth )
pth = pszFilename + strlen( pszFilename );
}
}
psz = strchr( pszFilename, ':' );
if( pth && ( !psz || pth < psz ) )
if( pth && ( ! psz || pth < psz ) )
psz = pth;
if( psz )
@@ -763,7 +763,7 @@ static const char * s_fileDecode( const char * pszFilename,
*pServer = buffer;
}
pszFilename = psz + 1;
if( !pth || psz < pth )
if( ! pth || psz < pth )
{
iLen = 0;
while( HB_ISDIGIT( pszFilename[ iLen ] ) &&
@@ -783,7 +783,7 @@ static const char * s_fileDecode( const char * pszFilename,
port_buf[ iLen ] = '\0';
llPort = hb_strValInt( port_buf, &iOverflow );
if( !iOverflow && llPort > 0 && llPort < 0x10000 )
if( ! iOverflow && llPort > 0 && llPort < 0x10000 )
{
pszFilename += iLen;
*piPort = ( int ) llPort;
@@ -882,8 +882,8 @@ static PHB_CONCLI s_fileConnect( const char ** pFilename,
if( conn )
{
if( !s_fileSendMsg( conn, msgbuf, NETIO_LOGINSTRID, len,
HB_TRUE, fNoError ) ||
if( ! s_fileSendMsg( conn, msgbuf, NETIO_LOGINSTRID, len,
HB_TRUE, fNoError ) ||
HB_GET_LE_UINT32( &msgbuf[ 4 ] ) != NETIO_CONNECTED )
{
s_fileConFree( conn );
@@ -935,7 +935,7 @@ static void s_netio_exit( void * cargo )
s_fileConFree( conn );
}
if( !s_fInit )
if( ! s_fInit )
{
hb_socketCleanup();
s_fInit = HB_TRUE;
@@ -1058,6 +1058,7 @@ static PHB_CONCLI s_connParam( int iParam )
{
PHB_CONCLI * conn_ptr = ( PHB_CONCLI * )
hb_parptrGC( &s_gcConCliFuncs, iParam );
if( conn_ptr )
{
PHB_CONCLI conn = *conn_ptr;
@@ -1159,7 +1160,7 @@ static HB_BOOL s_netio_procexec( int iMsg, int iType )
pszProcName = hb_parc( iParam );
if( pszProcName )
{
if( !conn )
if( ! conn )
conn = s_fileConnect( &pszProcName, NULL, 0, 0, HB_FALSE,
NULL, 0, HB_ZLIB_COMPRESSION_DISABLE, 0 );
if( conn )
@@ -1313,7 +1314,7 @@ static PHB_CONCLI s_netio_getConn( void )
{
PHB_CONCLI conn = s_connParam( 2 );
if( !conn )
if( ! conn )
{
const char * pszServer = hb_parc( 2 );
char * pszIpAddres;
@@ -1552,7 +1553,7 @@ static PHB_FILE s_fileOpen( const char * pFilename, const char * pDefExt,
s_fileConUnlock( conn );
}
if( !pFile )
if( ! pFile )
s_fileConClose( conn );
}
@@ -1604,7 +1605,7 @@ static HB_BOOL s_fileLock( PHB_FILE pFile, HB_FOFFSET ulStart, HB_FOFFSET ulLen,
memset( msgbuf + 24, '\0', sizeof( msgbuf ) - 24 );
#endif
fResult = s_fileSendMsg( pFile->conn, msgbuf, NULL, 0, !fUnLock, HB_FALSE );
fResult = s_fileSendMsg( pFile->conn, msgbuf, NULL, 0, ! fUnLock, HB_FALSE );
s_fileConUnlock( pFile->conn );
}
@@ -1620,9 +1621,9 @@ static int s_fileLockTest( PHB_FILE pFile, HB_FOFFSET ulStart, HB_FOFFSET ulLen,
{
HB_BYTE msgbuf[ NETIO_MSGLEN ];
HB_PUT_LE_UINT32( &msgbuf[ 0 ], NETIO_TESTLOCK );
HB_PUT_LE_UINT16( &msgbuf[ 4 ], pFile->fd );
HB_PUT_LE_UINT64( &msgbuf[ 6 ], ulStart );
HB_PUT_LE_UINT32( &msgbuf[ 0 ], NETIO_TESTLOCK );
HB_PUT_LE_UINT16( &msgbuf[ 4 ], pFile->fd );
HB_PUT_LE_UINT64( &msgbuf[ 6 ], ulStart );
HB_PUT_LE_UINT64( &msgbuf[ 14 ], ulLen );
HB_PUT_LE_UINT16( &msgbuf[ 22 ], ( HB_USHORT ) iType );
#if NETIO_MSGLEN > 24
@@ -1811,7 +1812,7 @@ HB_CALL_ON_STARTUP_END( _hb_file_netio_init_ )
#if defined( HB_PRAGMA_STARTUP )
#pragma startup _hb_file_netio_init_
#elif defined( HB_DATASEG_STARTUP )
#define HB_DATASEG_BODY HB_DATASEG_FUNC( _hb_file_netio_init_ )
#define HB_DATASEG_BODY HB_DATASEG_FUNC( _hb_file_netio_init_ )
#include "hbiniseg.h"
#endif

View File

@@ -94,8 +94,8 @@
typedef struct _HB_CONSTREAM
{
int id;
int type;
int id;
int type;
struct _HB_CONSTREAM * next;
}
HB_CONSTREAM, * PHB_CONSTREAM;
@@ -123,10 +123,10 @@ HB_CONSRV, * PHB_CONSRV;
typedef struct _HB_LISTENSD
{
HB_SOCKET sd;
HB_BOOL stop;
HB_BOOL rpc;
char rootPath[ HB_PATH_MAX ];
HB_SOCKET sd;
HB_BOOL stop;
HB_BOOL rpc;
char rootPath[ HB_PATH_MAX ];
}
HB_LISTENSD, * PHB_LISTENSD;
@@ -159,9 +159,9 @@ static const char * s_consrvFilePath( char * pszFileName, PHB_CONSRV conn )
s_isDirSep( pszFileName[ iPos + 2 ] ) ) )
--iLevel;
else if( pszFileName[ iPos ] &&
!s_isDirSep( pszFileName[ iPos ] ) &&
!( pszFileName[ iPos ] == '.' &&
s_isDirSep( pszFileName[ iPos + 1 ] ) ) )
! s_isDirSep( pszFileName[ iPos ] ) &&
! ( pszFileName[ iPos ] == '.' &&
s_isDirSep( pszFileName[ iPos + 1 ] ) ) )
++iLevel;
}
ch = pszFileName[ iPos ];
@@ -184,6 +184,7 @@ static const char * s_consrvFilePath( char * pszFileName, PHB_CONSRV conn )
static HB_ERRCODE s_srvFsError( void )
{
HB_ERRCODE errCode = hb_fsError();
if( errCode == 0 )
errCode = NETIO_ERR_FILE_IO;
return errCode;
@@ -342,6 +343,7 @@ static PHB_CONSRV s_consrvNew( HB_SOCKET connsd, const char * szRootPath, HB_BOO
{
PHB_CONSRV conn = ( PHB_CONSRV ) memset( hb_xgrab( sizeof( HB_CONSRV ) ),
0, sizeof( HB_CONSRV ) );
conn->sd = connsd;
conn->rpc = rpc;
if( szRootPath )
@@ -358,7 +360,7 @@ static long s_srvRecvAll( PHB_CONSRV conn, void * buffer, long len )
HB_BYTE * ptr = ( HB_BYTE * ) buffer;
long lRead = 0, l;
while( lRead < len && !conn->stop )
while( lRead < len && ! conn->stop )
{
if( conn->zstream )
l = hb_znetRead( conn->zstream, conn->sd, ptr + lRead, len - lRead, 1000 );
@@ -385,9 +387,9 @@ static long s_srvSendAll( PHB_CONSRV conn, void * buffer, long len )
HB_BYTE * ptr = ( HB_BYTE * ) buffer;
long lSent = 0, lLast = 1, l;
if( !conn->mutex || hb_threadMutexLock( conn->mutex ) )
if( ! conn->mutex || hb_threadMutexLock( conn->mutex ) )
{
while( lSent < len && !conn->stop )
while( lSent < len && ! conn->stop )
{
if( conn->zstream )
l = hb_znetWrite( conn->zstream, conn->sd, ptr + lSent, len - lSent, -1, &lLast );
@@ -405,7 +407,7 @@ static long s_srvSendAll( PHB_CONSRV conn, void * buffer, long len )
break;
}
}
if( conn->zstream && lLast > 0 && !conn->stop )
if( conn->zstream && lLast > 0 && ! conn->stop )
{
if( hb_znetFlush( conn->zstream, conn->sd, -1 ) != 0 )
lSent = -1;
@@ -471,7 +473,7 @@ static void s_listenRet( HB_SOCKET sd, const char * szRootPath, HB_BOOL rpc )
iLen = ( int ) strlen( lsd->rootPath );
if( iLen > 0 )
{
if( !s_isDirSep( lsd->rootPath[ iLen - 1 ] ) )
if( ! s_isDirSep( lsd->rootPath[ iLen - 1 ] ) )
{
if( iLen == sizeof( lsd->rootPath ) - 1 )
--iLen;
@@ -520,6 +522,7 @@ HB_FUNC( NETIO_RPC )
HB_FUNC( NETIO_RPCFILTER )
{
PHB_CONSRV conn = s_consrvParam( 1 );
if( conn )
{
if( conn->rpcFilter )
@@ -528,7 +531,7 @@ HB_FUNC( NETIO_RPCFILTER )
conn->rpcFilter = NULL;
}
conn->rpcFunc = hb_itemGetSymbol( hb_param( 2, HB_IT_SYMBOL ) );
if( !conn->rpcFunc )
if( ! conn->rpcFunc )
{
PHB_ITEM pHash = hb_param( 2, HB_IT_HASH );
if( pHash )
@@ -605,7 +608,7 @@ HB_FUNC( NETIO_ACCEPT )
PHB_LISTENSD lsd = s_listenParam( 1, HB_TRUE );
PHB_CONSRV conn = NULL;
if( lsd && lsd->sd != HB_NO_SOCKET && !lsd->stop )
if( lsd && lsd->sd != HB_NO_SOCKET && ! lsd->stop )
{
HB_MAXINT timeout = hb_parnintdef( 2, -1 );
HB_SOCKET connsd;
@@ -618,8 +621,10 @@ HB_FUNC( NETIO_ACCEPT )
iStrategy = hb_parnidef( 5, HB_ZLIB_STRATEGY_DEFAULT );
do
{
connsd = hb_socketAccept( lsd->sd, NULL, NULL, timeout < 0 ? 1000 : timeout );
while( connsd == HB_NO_SOCKET && !lsd->stop && timeout < 0 &&
}
while( connsd == HB_NO_SOCKET && ! lsd->stop && timeout < 0 &&
hb_socketGetError() == HB_SOCKET_ERR_TIMEOUT &&
hb_vmRequestQuery() == 0 );
@@ -657,7 +662,7 @@ HB_FUNC( NETIO_COMPRESS )
{
PHB_CONSRV conn = s_consrvParam( 1 );
if( conn && conn->sd != HB_NO_SOCKET && !conn->stop )
if( conn && conn->sd != HB_NO_SOCKET && ! conn->stop )
{
int iLevel, iStrategy, keylen = ( int ) hb_parclen( 3 );
@@ -694,7 +699,7 @@ HB_FUNC( NETIO_COMPRESS )
static HB_BOOL s_netio_login_accept( PHB_CONSRV conn )
{
if( conn && conn->sd != HB_NO_SOCKET && !conn->stop && !conn->login )
if( conn && conn->sd != HB_NO_SOCKET && ! conn->stop && ! conn->login )
{
HB_BYTE msgbuf[ NETIO_MSGLEN ];
@@ -717,7 +722,7 @@ static HB_BOOL s_netio_login_accept( PHB_CONSRV conn )
}
}
}
if( !conn->login )
if( ! conn->login )
s_consrv_disconnect( conn );
}
@@ -729,6 +734,7 @@ static HB_BOOL s_netio_login_accept( PHB_CONSRV conn )
HB_FUNC( NETIO_VERIFYCLIENT )
{
PHB_CONSRV conn = s_consrvParam( 1 );
if( conn )
hb_retl( s_netio_login_accept( conn ) );
}
@@ -781,9 +787,9 @@ HB_FUNC( NETIO_SERVER )
{
const char * szFile = s_consrvFilePath( ( char * ) msg, conn );
if( !szFile )
if( ! szFile )
errCode = NETIO_ERR_WRONG_FILE_PATH;
else if( !hb_fileExists( szFile, NULL ) )
else if( ! hb_fileExists( szFile, NULL ) )
errCode = s_srvFsError();
else
{
@@ -809,9 +815,9 @@ HB_FUNC( NETIO_SERVER )
{
const char * szFile = s_consrvFilePath( ( char * ) msg, conn );
if( !szFile )
if( ! szFile )
errCode = NETIO_ERR_WRONG_FILE_PATH;
else if( !hb_fileDelete( szFile ) )
else if( ! hb_fileDelete( szFile ) )
errCode = s_srvFsError();
else
{
@@ -823,7 +829,7 @@ HB_FUNC( NETIO_SERVER )
break;
case NETIO_RENAME:
size = HB_GET_LE_UINT16( &msgbuf[ 4 ] );
size = HB_GET_LE_UINT16( &msgbuf[ 4 ] );
size2 = HB_GET_LE_UINT16( &msgbuf[ 6 ] );
if( size <= 0 || size2 <= 0 )
errCode = NETIO_ERR_WRONG_PARAM;
@@ -845,14 +851,14 @@ HB_FUNC( NETIO_SERVER )
msg[ size2 ] = '\0';
if( s_srvRecvAll( conn, msg, size2 ) != size2 )
errCode = NETIO_ERR_READ;
else if( !szOldName )
else if( ! szOldName )
errCode = NETIO_ERR_WRONG_FILE_PATH;
else
{
szFile = s_consrvFilePath( ( char * ) msg, conn );
if( !szFile )
if( ! szFile )
errCode = NETIO_ERR_WRONG_FILE_PATH;
else if( !hb_fileRename( szOldName, szFile ) )
else if( ! hb_fileRename( szOldName, szFile ) )
errCode = s_srvFsError();
else
{
@@ -886,12 +892,12 @@ HB_FUNC( NETIO_SERVER )
{
const char * szFile = s_consrvFilePath( ( char * ) msg, conn );
if( !szFile )
if( ! szFile )
errCode = NETIO_ERR_WRONG_FILE_PATH;
else
{
pFile = hb_fileExtOpen( szFile, szExt, uiFalgs, NULL, NULL );
if( !pFile )
if( ! pFile )
errCode = s_srvFsError();
else
{
@@ -990,9 +996,9 @@ HB_FUNC( NETIO_SERVER )
HB_PUT_LE_UINT32( &msg[ 8 ], errFsCode );
memset( msg + 12, '\0', NETIO_MSGLEN - 4 );
}
else if( !hb_fileLock( pFile, llOffset, llSize, uiFalgs ) )
else if( ! hb_fileLock( pFile, llOffset, llSize, uiFalgs ) )
errCode = s_srvFsError();
else if( !fNoAnswer )
else if( ! fNoAnswer )
{
HB_PUT_LE_UINT32( &msg[ 0 ], uiMsg );
memset( msg + 4, '\0', NETIO_MSGLEN - 4 );
@@ -1005,7 +1011,7 @@ HB_FUNC( NETIO_SERVER )
pFile = s_srvFileGet( conn, iFileNo );
if( pFile == NULL )
errCode = NETIO_ERR_WRONG_FILE_HANDLE;
else if( !hb_fileTruncAt( pFile, llOffset ) )
else if( ! hb_fileTruncAt( pFile, llOffset ) )
errCode = s_srvFsError();
else
{
@@ -1089,7 +1095,7 @@ HB_FUNC( NETIO_SERVER )
case NETIO_PROCW:
case NETIO_FUNC:
case NETIO_FUNCCTRL:
if( !conn->rpc )
if( ! conn->rpc )
{
errCode = NETIO_ERR_UNSUPPORTED;
break;
@@ -1117,13 +1123,13 @@ HB_FUNC( NETIO_SERVER )
if( conn->rpcFilter )
{
pItem = hb_hashGetCItemPtr( conn->rpcFilter, data );
if( !pItem )
if( ! pItem )
errCode = NETIO_ERR_NOT_EXISTS;
}
else
{
pDynSym = hb_dynsymFindName( data );
if( !pDynSym || !hb_dynsymIsFunction( pDynSym ) )
if( ! pDynSym || ! hb_dynsymIsFunction( pDynSym ) )
errCode = NETIO_ERR_NOT_EXISTS;
}
@@ -1177,7 +1183,7 @@ HB_FUNC( NETIO_SERVER )
if( conn->mutex == NULL )
conn->mutex = hb_threadMutexCreate();
if( !hb_threadMutexLock( conn->mutex ) )
if( ! hb_threadMutexLock( conn->mutex ) )
errCode = NETIO_ERR_REFUSED;
}
else
@@ -1186,7 +1192,7 @@ HB_FUNC( NETIO_SERVER )
while( nSize > 0 && errCode == 0 )
{
pItem = hb_itemDeserialize( &data, &nSize );
if( !pItem )
if( ! pItem )
{
errCode = NETIO_ERR_WRONG_PARAM;
break;
@@ -1199,7 +1205,9 @@ HB_FUNC( NETIO_SERVER )
{
uiPCount += 2;
do
{
hb_stackPop();
}
while( --uiPCount );
}
else
@@ -1215,7 +1223,7 @@ HB_FUNC( NETIO_SERVER )
char * itmData = hb_itemSerialize( pResult, HB_TRUE, &itmSize );
if( itmSize <= sizeof( buffer ) - NETIO_MSGLEN )
msg = buffer;
else if( !ptr || itmSize > ( HB_SIZE ) size - NETIO_MSGLEN )
else if( ! ptr || itmSize > ( HB_SIZE ) size - NETIO_MSGLEN )
{
if( ptr )
hb_xfree( ptr );
@@ -1248,7 +1256,7 @@ HB_FUNC( NETIO_SERVER )
errCode = NETIO_ERR_REFUSED;
}
}
if( errCode == 0 && !fNoAnswer )
if( errCode == 0 && ! fNoAnswer )
{
HB_PUT_LE_UINT32( &msg[ 0 ], uiMsg );
HB_PUT_LE_UINT32( &msg[ 4 ], len );
@@ -1303,7 +1311,7 @@ HB_FUNC( NETIO_SRVSENDITEM )
PHB_ITEM pItem = hb_param( 3, HB_IT_ANY );
HB_BOOL fResult = HB_FALSE;
if( conn && conn->sd != HB_NO_SOCKET && !conn->stop && conn->mutex &&
if( conn && conn->sd != HB_NO_SOCKET && ! conn->stop && conn->mutex &&
iStreamID && pItem )
{
char * itmData, * msg;
@@ -1348,7 +1356,7 @@ HB_FUNC( NETIO_SRVSENDDATA )
long lLen = ( long ) hb_parclen( 3 );
HB_BOOL fResult = HB_FALSE;
if( conn && conn->sd != HB_NO_SOCKET && !conn->stop && conn->mutex &&
if( conn && conn->sd != HB_NO_SOCKET && ! conn->stop && conn->mutex &&
iStreamID && lLen > 0 )
{
char * msg;
@@ -1394,7 +1402,7 @@ HB_FUNC( NETIO_SRVSTATUS )
iStreamID = 0;
}
if( !conn )
if( ! conn )
iStatus = NETIO_SRVSTAT_WRONGHANDLE;
else if( conn->sd == HB_NO_SOCKET )
iStatus = NETIO_SRVSTAT_CLOSED;
@@ -1418,33 +1426,37 @@ HB_FUNC( NETIO_SRVSTATUS )
hb_threadMutexUnlock( conn->mutex );
}
}
else switch( iSrvInfo )
else
{
case NETIO_SRVINFO_FILESCOUNT:
hb_storni( conn->filesCount, 3 );
break;
case NETIO_SRVINFO_BYTESSENT:
hb_stornint( conn->wr_count, 3 );
break;
case NETIO_SRVINFO_BYTESRECEIVED:
hb_stornint( conn->rd_count, 3 );
break;
case NETIO_SRVINFO_PEERADDRESS:
switch( iSrvInfo )
{
void * addr;
unsigned int len;
PHB_ITEM pItem = NULL;
if( hb_socketGetPeerName( conn->sd, &addr, &len ) == 0 )
case NETIO_SRVINFO_FILESCOUNT:
hb_storni( conn->filesCount, 3 );
break;
case NETIO_SRVINFO_BYTESSENT:
hb_stornint( conn->wr_count, 3 );
break;
case NETIO_SRVINFO_BYTESRECEIVED:
hb_stornint( conn->rd_count, 3 );
break;
case NETIO_SRVINFO_PEERADDRESS:
{
pItem = hb_socketAddrToItem( addr, len );
if( addr )
hb_xfree( addr );
void * addr;
unsigned int len;
PHB_ITEM pItem = NULL;
if( hb_socketGetPeerName( conn->sd, &addr, &len ) == 0 )
{
pItem = hb_socketAddrToItem( addr, len );
if( addr )
hb_xfree( addr );
}
if( ! hb_itemParamStoreRelease( 3, pItem ) && pItem )
hb_itemRelease( pItem );
break;
}
if( !hb_itemParamStoreRelease( 3, pItem ) && pItem )
hb_itemRelease( pItem );
break;
}
}
hb_retni( iStatus );
}

File diff suppressed because it is too large Load Diff

View File

@@ -62,15 +62,15 @@
#include "rddsys.ch"
#include "rddads.h"
#define HARBOUR_MAX_RDD_FILTER_LENGTH 256
#define MAX_STR_LEN 255
#define ADS_MAX_PARAMDEF_LEN 2048
#define HARBOUR_MAX_RDD_FILTER_LENGTH 256
#define MAX_STR_LEN 255
#define ADS_MAX_PARAMDEF_LEN 2048
int hb_ads_iFileType = ADS_CDX;
int hb_ads_iLockType = ADS_PROPRIETARY_LOCKING;
int hb_ads_iCheckRights = ADS_CHECKRIGHTS;
int hb_ads_iCharType = ADS_ANSI;
HB_BOOL hb_ads_bTestRecLocks = HB_FALSE; /* Debug Implicit locks */
int hb_ads_iFileType = ADS_CDX;
int hb_ads_iLockType = ADS_PROPRIETARY_LOCKING;
int hb_ads_iCheckRights = ADS_CHECKRIGHTS;
int hb_ads_iCharType = ADS_ANSI;
HB_BOOL hb_ads_bTestRecLocks = HB_FALSE; /* Debug Implicit locks */
#ifdef ADS_USE_OEM_TRANSLATION
@@ -134,13 +134,13 @@ void hb_adsOemAnsiFree( char * pszSrc )
typedef struct
{
ADSHANDLE hConnect;
#if !defined( ADS_LINUX )
PHB_ITEM pCallBack;
ADSHANDLE hConnect;
#if ! defined( ADS_LINUX )
PHB_ITEM pCallBack;
#endif /* !ADS_LINUX */
} HB_ADSDATA, * PHB_ADSDATA;
#if !defined( ADS_LINUX ) || defined( HB_ADS_TSD_CONNECTION )
#if ! defined( ADS_LINUX ) || defined( HB_ADS_TSD_CONNECTION )
static void hb_adsThreadRelease( void * cargo )
{
@@ -148,22 +148,22 @@ static void hb_adsThreadRelease( void * cargo )
if( pAdsData->hConnect )
AdsDisconnect( pAdsData->hConnect );
#if !defined( ADS_LINUX )
#if ! defined( ADS_LINUX )
if( pAdsData->pCallBack )
hb_itemRelease( pAdsData->pCallBack );
#endif /* !ADS_LINUX */
}
static HB_TSD_NEW( s_adsData, sizeof( HB_ADSDATA ), NULL, hb_adsThreadRelease );
#define HB_ADS_THREAD_DATA ( ( PHB_ADSDATA ) hb_stackGetTSD( &s_adsData ) )
#define HB_ADS_THREAD_DATA ( ( PHB_ADSDATA ) hb_stackGetTSD( &s_adsData ) )
#endif
#ifdef HB_ADS_TSD_CONNECTION
#define HB_ADS_CONN_DATA HB_ADS_THREAD_DATA
#define HB_ADS_CONN_DATA HB_ADS_THREAD_DATA
#else
static HB_ADSDATA s_ads_data;
#define HB_ADS_CONN_DATA (&s_ads_data)
static HB_ADSDATA s_ads_data;
#define HB_ADS_CONN_DATA ( &s_ads_data )
#endif
ADSHANDLE hb_ads_getConnection( void )
@@ -173,13 +173,13 @@ ADSHANDLE hb_ads_getConnection( void )
ADSHANDLE hb_ads_defConnection( ADSHANDLE hConnect, const char * szName )
{
if( !hConnect )
if( ! hConnect )
{
PHB_ADSDATA pAdsData = HB_ADS_CONN_DATA;
hConnect = pAdsData->hConnect;
#ifdef HB_ADS_TSD_CONNECTION
if( !hConnect )
if( ! hConnect )
{
if( AdsConnect( ( UNSIGNED8 * ) szName, &hConnect ) == AE_SUCCESS )
pAdsData->hConnect = hConnect;
@@ -204,7 +204,7 @@ static void hb_ads_clrConnection( ADSHANDLE hConnect )
pAdsData->hConnect = 0;
}
#if !defined( ADS_LINUX )
#if ! defined( ADS_LINUX )
static PHB_ITEM hb_ads_getCallBack( void )
{
return HB_ADS_THREAD_DATA->pCallBack;
@@ -292,7 +292,7 @@ HB_FUNC( ADSISSERVERLOADED )
UNSIGNED16 pbLoaded = 0;
hb_retni( HB_ISCHAR( 1 ) && AdsIsServerLoaded( ( UNSIGNED8 * ) hb_parcx( 1 ),
&pbLoaded ) == AE_SUCCESS ? pbLoaded : 0 );
&pbLoaded ) == AE_SUCCESS ? pbLoaded : 0 );
}
HB_FUNC( ADSGETCONNECTIONTYPE )
@@ -312,10 +312,10 @@ HB_FUNC( ADSGETCONNECTIONTYPE )
connected to ADS_REMOTE_SERVER, ADS_AIS_SERVER, or ADS_LOCAL_SERVER. */
if( AdsGetConnectionType( hConnToCheck, &pusConnectType ) != AE_SUCCESS )
pusConnectType = AE_INVALID_CONNECTION_HANDLE; /* It may have set an error value, or leave as 0. */
pusConnectType = AE_INVALID_CONNECTION_HANDLE; /* It may have set an error value, or leave as 0. */
}
else
pusConnectType = AE_NO_CONNECTION; /* AE_INVALID_CONNECTION_HANDLE; */
pusConnectType = AE_NO_CONNECTION; /* AE_INVALID_CONNECTION_HANDLE; */
hb_retni( pusConnectType );
}
@@ -331,7 +331,7 @@ HB_FUNC( ADSGETMEMODATATYPE )
{
UNSIGNED8 * pszFieldName = ( UNSIGNED8 * ) hb_parc( 1 );
if( !pszFieldName )
if( ! pszFieldName )
pszFieldName = ADSFIELD( hb_parni( 1 ) );
if( pszFieldName )
@@ -394,7 +394,7 @@ HB_FUNC( ADSGETSERVERTIME )
#if HB_TR_LEVEL >= HB_TR_DEBUG
else
{
HB_TRACE(HB_TR_DEBUG, ("AdsGetServerTime() error"));
HB_TRACE( HB_TR_DEBUG, ( "AdsGetServerTime() error" ) );
}
#endif
}
@@ -531,7 +531,7 @@ HB_FUNC( ADSSETDELETED )
hb_retl( pbShowDeleted == 0 );
if( HB_ISLOG( 1 ) )
AdsShowDeleted( ( UNSIGNED16 ) !hb_parl( 1 ) /* usShowDeleted */ );
AdsShowDeleted( ( UNSIGNED16 ) ! hb_parl( 1 ) /* usShowDeleted */ );
}
HB_FUNC( ADSSETEXACT )
@@ -548,7 +548,7 @@ HB_FUNC( ADSSETEXACT )
HB_FUNC( ADSBLOB2FILE )
{
const char * szFileName = hb_parcx( 1 );
const char * szFileName = hb_parcx( 1 );
const char * szFieldName = hb_parcx( 2 );
if( *szFileName && *szFieldName )
@@ -568,7 +568,7 @@ HB_FUNC( ADSBLOB2FILE )
HB_FUNC( ADSFILE2BLOB )
{
const char * szFileName = hb_parcx( 1 );
const char * szFileName = hb_parcx( 1 );
const char * szFieldName = hb_parcx( 2 );
if( *szFileName && *szFieldName )
@@ -718,7 +718,7 @@ HB_FUNC( ADSKEYCOUNT )
AdsAtEOF( pArea->hTable, &u16eof );
while( AdsSkip( hIndex, 1 ) != AE_NO_CURRENT_RECORD && !u16eof )
while( AdsSkip( hIndex, 1 ) != AE_NO_CURRENT_RECORD && ! u16eof )
{
AdsAtEOF( pArea->hTable, &u16eof );
pulKey++;
@@ -859,9 +859,9 @@ HB_FUNC( ADSGETAOF )
UNSIGNED8 * pucFilter2 = NULL;
UNSIGNED16 usLen = sizeof( pucFilter );
UNSIGNED32 ulRetVal = AdsGetAOF( pArea->hTable,
pucFilter,
&usLen );
UNSIGNED32 ulRetVal = AdsGetAOF( pArea->hTable,
pucFilter,
&usLen );
if( usLen > HARBOUR_MAX_RDD_FILTER_LENGTH )
{
@@ -1044,7 +1044,7 @@ HB_FUNC( ADSGETFILTER )
}
else
{
HB_TRACE(HB_TR_DEBUG, ("adsGetFilter() error %lu", ( HB_ULONG ) ulRetVal));
HB_TRACE( HB_TR_DEBUG, ( "adsGetFilter() error %lu", ( HB_ULONG ) ulRetVal ) );
hb_retc_null();
}
@@ -1301,7 +1301,7 @@ HB_FUNC( ADSEXECUTESQLDIRECT )
}
else
{
HB_TRACE(HB_TR_DEBUG, ("AdsExecuteSQLDirect() error"));
HB_TRACE( HB_TR_DEBUG, ( "AdsExecuteSQLDirect() error" ) );
hb_retl( HB_FALSE );
}
}
@@ -1320,7 +1320,7 @@ HB_FUNC( ADSPREPARESQL )
hb_retl( HB_TRUE );
else
{
HB_TRACE(HB_TR_DEBUG, ("AdsPrepareSQL() error"));
HB_TRACE( HB_TR_DEBUG, ( "AdsPrepareSQL() error" ) );
hb_retl( HB_FALSE );
}
}
@@ -1355,7 +1355,7 @@ HB_FUNC( ADSEXECUTESQL )
}
else
{
HB_TRACE(HB_TR_DEBUG, ("AdsExecuteSQL() error"));
HB_TRACE( HB_TR_DEBUG, ( "AdsExecuteSQL() error" ) );
hb_retl( HB_FALSE );
}
}
@@ -1435,10 +1435,11 @@ HB_FUNC( ADSCONVERTTABLE )
hb_errRT_DBCMD( EG_NOTABLE, 2001, NULL, HB_ERR_FUNCNAME );
}
#if !defined( ADS_LINUX )
#if ! defined( ADS_LINUX )
UNSIGNED32 WINAPI hb_adsShowPercentageCB( UNSIGNED16 usPercentDone )
{
PHB_ITEM pCallBack = hb_ads_getCallBack();
if( pCallBack )
{
PHB_ITEM pPercentDone = hb_itemPutNI( NULL, usPercentDone );
@@ -1451,7 +1452,7 @@ UNSIGNED32 WINAPI hb_adsShowPercentageCB( UNSIGNED16 usPercentDone )
#if HB_TR_LEVEL >= HB_TR_DEBUG
else
{
HB_TRACE(HB_TR_DEBUG, ("hb_adsShowPercentageCB(%d) called with no codeblock set.", usPercentDone ));
HB_TRACE( HB_TR_DEBUG, ( "hb_adsShowPercentageCB(%d) called with no codeblock set.", usPercentDone ) );
}
#endif
@@ -1463,7 +1464,7 @@ HB_FUNC( ADSREGCALLBACK )
{
HB_BOOL fResult = HB_FALSE;
#if !defined( ADS_LINUX )
#if ! defined( ADS_LINUX )
/* NOTE: current implementation is not thread safe.
ADS can register multiple callbacks, but one per thread/connection.
To be thread safe, we need multiple connections.
@@ -1488,7 +1489,7 @@ HB_FUNC( ADSREGCALLBACK )
HB_FUNC( ADSCLRCALLBACK )
{
#if !defined( ADS_LINUX )
#if ! defined( ADS_LINUX )
hb_ads_setCallBack( NULL );
hb_retnl( AdsClearProgressCallback() );
#else
@@ -1620,7 +1621,7 @@ HB_FUNC( ADSROLLBACK )
set the number of records to read ahead, for the current work area
Call: ADSCACHERECORDS( nRecords )
Returns: True if successful
*/
*/
HB_FUNC( ADSCACHERECORDS )
{
ADSAREAP pArea = hb_adsGetWorkAreaPointer();
@@ -1633,10 +1634,10 @@ HB_FUNC( ADSCACHERECORDS )
}
/*
Reindex all tags of the currently selected table
Returns true if successful, false if fails.
Error code available by calling AdsGetLastError()
*/
Reindex all tags of the currently selected table
Returns true if successful, false if fails.
Error code available by calling AdsGetLastError()
*/
HB_FUNC( ADSREINDEX )
{
ADSAREAP pArea = hb_adsGetWorkAreaPointer();
@@ -1713,6 +1714,7 @@ HB_FUNC( ADSISEMPTY )
HB_FUNC( ADSGETNUMACTIVELINKS ) /* Only valid for a DataDict */
{
UNSIGNED16 pusNumLinks = 0;
#if ADS_LIB_VERSION >= 620
ADSHANDLE hConnect = HB_ADS_PARCONNECTION( 1 );
@@ -1963,13 +1965,11 @@ HB_FUNC( ADSDDSETDATABASEPROPERTY )
case ADS_DD_TEMP_TABLE_PATH:
case ADS_DD_ADMIN_PASSWORD:
case ADS_DD_ENCRYPT_TABLE_PASSWORD:
{
ulRetVal = AdsDDSetDatabaseProperty( hConnect,
ulProperty,
HB_IS_STRING( pParam ) ? ( VOID * ) hb_itemGetCPtr( pParam ) : NULL,
( UNSIGNED16 ) hb_itemGetCLen( pParam ) + 1 );
break;
}
/* String properties (NULL not accepted) */
#if ADS_LIB_VERSION >= 710
case ADS_DD_FTS_DELIMITERS:
@@ -1977,13 +1977,11 @@ HB_FUNC( ADSDDSETDATABASEPROPERTY )
case ADS_DD_FTS_DROP_CHARS:
case ADS_DD_FTS_CONDITIONAL_CHARS:
case ADS_DD_LOGINS_DISABLED_ERRSTR:
{
ulRetVal = AdsDDSetDatabaseProperty( hConnect,
ulProperty,
( VOID * ) hb_itemGetCPtr( pParam ),
( UNSIGNED16 ) hb_itemGetCLen( pParam ) + 1 );
break;
}
#endif
/* Boolean properties */
#if ADS_LIB_VERSION >= 600
@@ -2038,10 +2036,8 @@ HB_FUNC( ADSDDSETDATABASEPROPERTY )
break;
}
default:
{
ulRetVal = ( UNSIGNED32 ) ~AE_SUCCESS;
break;
}
}
hb_retl( ulRetVal == AE_SUCCESS );
@@ -2083,7 +2079,7 @@ HB_FUNC( ADSDDGETUSERPROPERTY )
If the optional last 3 parameters are supplied, then it queries the
requested user property and returns it in the buffer. This is useful
fo example to get the groups of which the user is a member
*/
*/
HB_FUNC( ADSTESTLOGIN )
{
#if ADS_LIB_VERSION >= 600

View File

@@ -124,7 +124,7 @@ HB_FUNC( ADSMGGETINSTALLINFO )
#if HB_TR_LEVEL >= HB_TR_INFO
if( usStructSize > sizeof( ADS_MGMT_INSTALL_INFO ) )
HB_TRACE(HB_TR_INFO, ("%s returned extra data; available with newer client lib.", "AdsMgGetInstallInfo()"));
HB_TRACE( HB_TR_INFO, ( "%s returned extra data; available with newer client lib.", "AdsMgGetInstallInfo()" ) );
#endif
}
@@ -234,7 +234,7 @@ HB_FUNC( ADSMGGETACTIVITYINFO )
#if HB_TR_LEVEL >= HB_TR_INFO
if( usStructSize > sizeof( ADS_MGMT_ACTIVITY_INFO ) )
HB_TRACE(HB_TR_INFO, ("%s returned extra data; available with newer client lib.", "AdsMgGetActivityInfo()"));
HB_TRACE( HB_TR_INFO, ( "%s returned extra data; available with newer client lib.", "AdsMgGetActivityInfo()" ) );
#endif
}
@@ -265,7 +265,7 @@ HB_FUNC( ADSMGGETCOMMSTATS )
#if HB_TR_LEVEL >= HB_TR_INFO
if( usStructSize > sizeof( ADS_MGMT_COMM_STATS ) )
HB_TRACE(HB_TR_INFO, ("%s returned extra data; available with newer client lib.", "AdsMgGetCommStats()"));
HB_TRACE( HB_TR_INFO, ( "%s returned extra data; available with newer client lib.", "AdsMgGetCommStats()" ) );
#endif
}
@@ -355,10 +355,10 @@ HB_FUNC( ADSMGGETCONFIGINFO )
#if HB_TR_LEVEL >= HB_TR_INFO
if( usConfigValuesStructSize > sizeof( ADS_MGMT_CONFIG_PARAMS ) )
HB_TRACE(HB_TR_INFO, ("%s returned extra data; available with newer client lib.", "AdsMgGetConfigInfo()"));
HB_TRACE( HB_TR_INFO, ( "%s returned extra data; available with newer client lib.", "AdsMgGetConfigInfo()" ) );
if( usConfigMemoryStructSize > sizeof( ADS_MGMT_CONFIG_MEMORY ) )
HB_TRACE(HB_TR_INFO, ("%s returned extra data; available with newer client lib.", "AdsMgGetConfigInfo()"));
HB_TRACE( HB_TR_INFO, ( "%s returned extra data; available with newer client lib.", "AdsMgGetConfigInfo()" ) );
#endif
}
@@ -417,7 +417,7 @@ HB_FUNC( ADSMGGETUSERNAMES )
#if HB_TR_LEVEL >= HB_TR_INFO
if( usStructSize > sizeof( ADS_MGMT_USER_INFO ) )
HB_TRACE(HB_TR_INFO, ("%s returned extra data; available with newer client lib.", "AdsMgGetUserNames()"));
HB_TRACE( HB_TR_INFO, ( "%s returned extra data; available with newer client lib.", "AdsMgGetUserNames()" ) );
#endif
}
@@ -446,16 +446,16 @@ HB_FUNC( ADSMGGETLOCKOWNER )
&pusLockType ) == AE_SUCCESS )
{
hb_reta( 5 );
hb_storvc( ( char * ) pstUserInfo->aucUserName , -1, 1 ); /* Machine name under NT */
hb_storvc( ( char * ) pstUserInfo->aucUserName, -1, 1 ); /* Machine name under NT */
hb_storvnl( ( UNSIGNED16 ) pstUserInfo->usConnNumber, -1, 2 ); /* NetWare conn # (NLM only) */
#if ADS_LIB_VERSION >= 600
hb_storvc( ( char * ) pstUserInfo->aucAuthUserName, -1, 3 ); /* logon name with Data Dictionary */
hb_storvc( ( char * ) pstUserInfo->aucAddress, -1, 4 ); /* IP adddress */
hb_storvc( ( char * ) pstUserInfo->aucAuthUserName, -1, 3 ); /* logon name with Data Dictionary */
hb_storvc( ( char * ) pstUserInfo->aucAddress, -1, 4 ); /* IP adddress */
#else
hb_storvc( NULL, -1, 3 ); /* logon name with Data Dictionary */
hb_storvc( NULL, -1, 4 ); /* IP adddress */
hb_storvc( NULL, -1, 3 ); /* logon name with Data Dictionary */
hb_storvc( NULL, -1, 4 ); /* IP adddress */
#endif
hb_storvnl( pusLockType, -1, 5 ); /* type of lock */
hb_storvnl( pusLockType, -1, 5 ); /* type of lock */
}
else
hb_reta( 0 );
@@ -464,7 +464,7 @@ HB_FUNC( ADSMGGETLOCKOWNER )
#if HB_TR_LEVEL >= HB_TR_INFO
if( usStructSize > sizeof( ADS_MGMT_USER_INFO ) )
HB_TRACE(HB_TR_INFO, ("%s returned extra data; available with newer client lib.", "AdsMgGetLockOwner()"));
HB_TRACE( HB_TR_INFO, ( "%s returned extra data; available with newer client lib.", "AdsMgGetLockOwner()" ) );
#endif
}
@@ -498,7 +498,7 @@ HB_FUNC( ADSMGGETOPENTABLES ) /* nMaxNumberOfFilesToReturn, cUserName, nConnecti
#if HB_TR_LEVEL >= HB_TR_INFO
if( usStructSize > sizeof( ADS_MGMT_TABLE_INFO ) )
HB_TRACE(HB_TR_INFO, ("%s returned extra data; available with newer client lib.", "AdsMgGetOpenTables()"));
HB_TRACE( HB_TR_INFO, ( "%s returned extra data; available with newer client lib.", "AdsMgGetOpenTables()" ) );
#endif
}
@@ -536,7 +536,7 @@ HB_FUNC( ADSMGGETOPENTABLES2 ) /* nMaxNumberOfFilesToReturn, cUserName, nConnect
#if HB_TR_LEVEL >= HB_TR_INFO
if( usStructSize > sizeof( ADS_MGMT_TABLE_INFO ) )
HB_TRACE(HB_TR_INFO, ("%s returned extra data; available with newer client lib.", "AdsMgGetOpenTables()"));
HB_TRACE( HB_TR_INFO, ( "%s returned extra data; available with newer client lib.", "AdsMgGetOpenTables()" ) );
#endif
}
@@ -569,7 +569,7 @@ HB_FUNC( ADSMGGETOPENINDEXES ) /* nMaxNumberOfFilesToReturn, cTableName, cUserNa
#if HB_TR_LEVEL >= HB_TR_INFO
if( usStructSize > sizeof( ADS_MGMT_INDEX_INFO ) )
HB_TRACE(HB_TR_INFO, ("%s returned extra data; available with newer client lib.", "AdsMgGetOpenIndexes()"));
HB_TRACE( HB_TR_INFO, ( "%s returned extra data; available with newer client lib.", "AdsMgGetOpenIndexes()" ) );
#endif
}
@@ -602,7 +602,7 @@ HB_FUNC( ADSMGGETLOCKS )
#if HB_TR_LEVEL >= HB_TR_INFO
if( usStructSize > sizeof( ADS_MGMT_RECORD_INFO ) )
HB_TRACE(HB_TR_INFO, ("%s returned extra data; available with newer client lib.", "AdsMgGetLocks()"));
HB_TRACE( HB_TR_INFO, ( "%s returned extra data; available with newer client lib.", "AdsMgGetLocks()" ) );
#endif
}
@@ -645,6 +645,6 @@ HB_FUNC( ADSMGGETWORKERTHREADACTIVITY )
#if HB_TR_LEVEL >= HB_TR_INFO
if( usStructSize > sizeof( ADS_MGMT_THREAD_ACTIVITY ) )
HB_TRACE(HB_TR_INFO, ("%s returned extra data; available with newer client lib.", "AdsMgGetWorkerThreadActivity()"));
HB_TRACE( HB_TR_INFO, ( "%s returned extra data; available with newer client lib.", "AdsMgGetWorkerThreadActivity()" ) );
#endif
}

View File

@@ -63,49 +63,49 @@
#include "rddsys.ch"
#ifndef SUPER_ORDDESTROY
#define SUPER_ORDDESTROY(w, ip) ((*(SUPERTABLE)->orderDestroy)(w, ip))
#define SUPER_ORDDESTROY( w, ip ) ( ( *( SUPERTABLE )->orderDestroy )( w, ip ) )
#endif
#define SUPERTABLE ( &adsxSuper )
#define SUPERTABLE ( &adsxSuper )
#define MIX_MAXKEYLEN 250
#define MIX_MAXTAGNAMELEN 16
#define MIX_MAXKEYLEN 250
#define MIX_MAXTAGNAMELEN 16
#define MIX_KEYPOOLFIRST 256
#define MIX_KEYPOOLRESIZE 1024
#define MIX_KEYPOOLFIRST 256
#define MIX_KEYPOOLRESIZE 1024
typedef struct _MIXKEY
{
HB_ULONG rec;
HB_BYTE val[ 1 ];
} MIXKEY, *PMIXKEY;
HB_ULONG rec;
HB_BYTE val[ 1 ];
} MIXKEY, * PMIXKEY;
typedef struct _MIXTAG
{
struct _MIXTAG* pNext;
struct _MIXTAG * pNext;
char* szName;
char* szKeyExpr;
char* szForExpr;
PHB_ITEM pKeyItem;
PHB_ITEM pForItem;
HB_BYTE bType;
HB_USHORT uiLen;
char * szName;
char * szKeyExpr;
char * szForExpr;
PHB_ITEM pKeyItem;
PHB_ITEM pForItem;
HB_BYTE bType;
HB_USHORT uiLen;
PMIXKEY* pKeys;
HB_ULONG ulRecMax;
HB_ULONG ulRecCount;
PMIXKEY * pKeys;
HB_ULONG ulRecMax;
HB_ULONG ulRecCount;
PHB_CODEPAGE pCodepage; /* National sorttable for character key tags, NULL otherwise */
PHB_CODEPAGE pCodepage; /* National sorttable for character key tags, NULL otherwise */
HB_ULONG ulKeyNo;
} MIXTAG, *PMIXTAG;
HB_ULONG ulKeyNo;
} MIXTAG, * PMIXTAG;
typedef HB_ULONG MIXUPDATE, *PMIXUPDATE;
typedef HB_ULONG MIXUPDATE, * PMIXUPDATE;
typedef struct _ADSXAREA_
@@ -114,9 +114,9 @@ typedef struct _ADSXAREA_
/* ================ Additional fields for ADSX RDD =================== */
PMIXTAG pTagList;
PMIXTAG pTagCurrent;
} ADSXAREA, *ADSXAREAP;
PMIXTAG pTagList;
PMIXTAG pTagCurrent;
} ADSXAREA, * ADSXAREAP;
@@ -127,16 +127,16 @@ static HB_USHORT s_uiRddIdADSCDXX = ( HB_USHORT ) -1;
static HB_USHORT s_uiRddIdADSVFPX = ( HB_USHORT ) -1;
#endif
static HB_USHORT s_uiRddIdADSADTX = ( HB_USHORT ) -1;
static RDDFUNCS adsxSuper;
static RDDFUNCS adsxSuper;
/***********************************************************************
* Misc functions
************************************************************************/
* Misc functions
************************************************************************/
static HB_ERRCODE hb_mixErrorRT( ADSXAREAP pArea,
HB_ERRCODE errGenCode, HB_ERRCODE errSubCode,
char* filename, HB_ERRCODE errOsCode,
char * filename, HB_ERRCODE errOsCode,
HB_USHORT uiFlags )
{
PHB_ITEM pError;
@@ -172,21 +172,21 @@ static HB_ERRCODE hb_adsUpdateAreaFlags( ADSXAREAP pArea )
pArea->adsarea.area.fEof = u16Eof != 0;
pArea->adsarea.area.fFound = u16Found != 0;
pArea->adsarea.fPositioned = !pArea->adsarea.area.fBof && !pArea->adsarea.area.fEof;
pArea->adsarea.fPositioned = ! pArea->adsarea.area.fBof && ! pArea->adsarea.area.fEof;
return HB_SUCCESS;
}
/************************************************************************
* Memory Index
*************************************************************************/
* Memory Index
*************************************************************************/
static PMIXKEY mixKeyNew( PHB_ITEM pItem, HB_ULONG ulRecNo, HB_BYTE bType, HB_USHORT uiLen )
{
PMIXKEY pKey;
double dbl;
HB_BYTE buf[ 8 ];
PMIXKEY pKey;
double dbl;
HB_BYTE buf[ 8 ];
pKey = ( PMIXKEY ) hb_xgrab( sizeof( HB_ULONG ) + uiLen );
pKey->rec = ulRecNo;
@@ -210,7 +210,7 @@ static PMIXKEY mixKeyNew( PHB_ITEM pItem, HB_ULONG ulRecNo, HB_BYTE bType, HB_US
break;
case 'D':
dbl = (double) hb_itemGetDL( pItem );
dbl = ( double ) hb_itemGetDL( pItem );
HB_DBL2ORD( &dbl, buf );
memcpy( pKey->val, buf, 8 );
break;
@@ -290,7 +290,7 @@ static int mixQSortCompare( PMIXKEY p1, PMIXKEY p2, HB_USHORT uiLen, PHB_CODEPAG
i = hb_cdpcmp( ( const char * ) p1->val, ( HB_ULONG ) uiLen, ( const char * ) p2->val, ( HB_ULONG ) uiLen, pCodepage, 0 );
}
else
i = memcmp( p1->val, p2->val, uiLen );
i = memcmp( p1->val, p2->val, uiLen );
if( i == 0 )
{
@@ -303,24 +303,27 @@ static int mixQSortCompare( PMIXKEY p1, PMIXKEY p2, HB_USHORT uiLen, PHB_CODEPAG
}
else /* This is used to compare keys excluding recno */
{
if( i < 0 ) i = -2;
else i = 2;
if( i < 0 )
i = -2;
else
i = 2;
}
return i;
}
static void mixQSort( PMIXKEY* pKeys, HB_ULONG left, HB_ULONG right, HB_USHORT uiLen, PHB_CODEPAGE pCodepage )
static void mixQSort( PMIXKEY * pKeys, HB_ULONG left, HB_ULONG right, HB_USHORT uiLen, PHB_CODEPAGE pCodepage )
{
HB_ULONG l, r;
PMIXKEY x, h;
HB_ULONG l, r;
PMIXKEY x, h;
l = left;
r = right;
x = pKeys[ (l + r) / 2 ];
x = pKeys[ ( l + r ) / 2 ];
do {
do
{
while( mixQSortCompare( x, pKeys[ l ], uiLen, pCodepage ) > 0 )
l++;
while( mixQSortCompare( pKeys[ r ], x, uiLen, pCodepage ) > 0 )
@@ -342,10 +345,10 @@ static void mixQSort( PMIXKEY* pKeys, HB_ULONG left, HB_ULONG right, HB_USHORT u
}
static PMIXKEY mixFindKey( PMIXTAG pTag, PMIXKEY pKey, HB_ULONG* ulKeyPos )
static PMIXKEY mixFindKey( PMIXTAG pTag, PMIXKEY pKey, HB_ULONG * ulKeyPos )
{
HB_ULONG l, r;
int i = 1;
HB_ULONG l, r;
int i = 1;
if( ! pTag->ulRecCount )
{
@@ -359,14 +362,14 @@ static PMIXKEY mixFindKey( PMIXTAG pTag, PMIXKEY pKey, HB_ULONG* ulKeyPos )
while( l < r )
{
i = mixQSortCompare( pTag->pKeys[ (l + r) / 2 ], pKey, pTag->uiLen, pTag->pCodepage );
i = mixQSortCompare( pTag->pKeys[ ( l + r ) / 2 ], pKey, pTag->uiLen, pTag->pCodepage );
if( i < 0 )
l = (l + r) / 2 + 1;
l = ( l + r ) / 2 + 1;
else if( i > 0 )
r = (l + r) / 2;
r = ( l + r ) / 2;
else
l = r = (l + r) / 2;
l = r = ( l + r ) / 2;
}
if( i )
@@ -405,10 +408,10 @@ static PMIXTAG mixTagCreate( const char * szTagName, PHB_ITEM pKeyExpr, PHB_ITEM
pTag = ( PMIXTAG ) hb_xgrab( sizeof( MIXTAG ) );
memset( pTag, 0, sizeof( MIXTAG ) );
pTag->szName = ( char * ) hb_xgrab( MIX_MAXTAGNAMELEN + 1 );
pTag->szName = ( char * ) hb_xgrab( MIX_MAXTAGNAMELEN + 1 );
hb_strncpyUpperTrim( pTag->szName, szTagName, MIX_MAXTAGNAMELEN );
pTag->szKeyExpr = ( char * ) hb_xgrab( hb_itemGetCLen( pKeyExpr ) + 1 );
pTag->szKeyExpr = ( char * ) hb_xgrab( hb_itemGetCLen( pKeyExpr ) + 1 );
hb_strncpyTrim( pTag->szKeyExpr, hb_itemGetCPtr( pKeyExpr ), hb_itemGetCLen( pKeyExpr ) );
/* TODO: for expresion */
@@ -416,15 +419,15 @@ static PMIXTAG mixTagCreate( const char * szTagName, PHB_ITEM pKeyExpr, PHB_ITEM
pTag->pKeyItem = pKeyItem;
pTag->pForItem = pForItem;
pTag->bType = bType;
pTag->uiLen = uiLen;
pTag->bType = bType;
pTag->uiLen = uiLen;
/* Use national support */
if( bType == 'C' && pArea->adsarea.area.cdPage &&
!HB_CDP_ISBINSORT( pArea->adsarea.area.cdPage ) )
! HB_CDP_ISBINSORT( pArea->adsarea.area.cdPage ) )
pTag->pCodepage = pArea->adsarea.area.cdPage;
pTag->pKeys = ( PMIXKEY* ) hb_xgrab( sizeof( PMIXKEY ) * MIX_KEYPOOLFIRST );
pTag->pKeys = ( PMIXKEY * ) hb_xgrab( sizeof( PMIXKEY ) * MIX_KEYPOOLFIRST );
pTag->ulRecMax = MIX_KEYPOOLFIRST;
ulStartRec = 0;
@@ -454,7 +457,7 @@ static PMIXTAG mixTagCreate( const char * szTagName, PHB_ITEM pKeyExpr, PHB_ITEM
if( pOrdCondInfo->itmStartRecID )
ulStartRec = hb_itemGetNL( pOrdCondInfo->itmStartRecID );
if( !ulStartRec )
if( ! ulStartRec )
ulStartRec = pArea->adsarea.ulRecNo;
if( pArea->adsarea.area.lpdbOrdCondInfo->lNextCount > 0 )
@@ -504,7 +507,7 @@ static PMIXTAG mixTagCreate( const char * szTagName, PHB_ITEM pKeyExpr, PHB_ITEM
if( pTag->ulRecCount == pTag->ulRecMax )
{
pTag->pKeys = ( PMIXKEY* ) hb_xrealloc( pTag->pKeys, sizeof( PMIXKEY ) * ( pTag->ulRecMax + MIX_KEYPOOLRESIZE ) );
pTag->pKeys = ( PMIXKEY * ) hb_xrealloc( pTag->pKeys, sizeof( PMIXKEY ) * ( pTag->ulRecMax + MIX_KEYPOOLRESIZE ) );
pTag->ulRecMax += MIX_KEYPOOLRESIZE;
}
@@ -515,7 +518,8 @@ static PMIXTAG mixTagCreate( const char * szTagName, PHB_ITEM pKeyExpr, PHB_ITEM
if( ulNextCount )
{
ulNextCount--;
if( !ulNextCount ) break;
if( ! ulNextCount )
break;
}
AdsSkip( hOrder, 1 );
@@ -556,14 +560,14 @@ static void mixTagDestroy( PMIXTAG pTag )
static PMIXTAG mixFindTag( ADSXAREAP pArea, PHB_ITEM pOrder )
{
char szTag[ MIX_MAXTAGNAMELEN + 1 ];
PMIXTAG pTag;
char szTag[ MIX_MAXTAGNAMELEN + 1 ];
PMIXTAG pTag;
if( HB_IS_NUMBER( pOrder ) )
{
UNSIGNED16 usOrder = 0, usFind;
UNSIGNED16 usOrder = 0, usFind;
usFind = (UNSIGNED16) hb_itemGetNI( pOrder );
usFind = ( UNSIGNED16 ) hb_itemGetNI( pOrder );
AdsGetNumIndexes( pArea->adsarea.hTable, &usOrder );
usOrder++;
@@ -585,9 +589,9 @@ static PMIXTAG mixFindTag( ADSXAREAP pArea, PHB_ITEM pOrder )
static PMIXUPDATE mixUpdateCreate( ADSXAREAP pArea )
{
PMIXUPDATE pUpdate;
PMIXTAG pTag;
int iTag;
PMIXUPDATE pUpdate;
PMIXTAG pTag;
int iTag;
pTag = pArea->pTagList;
if( ! pArea->adsarea.fPositioned || ! pTag )
@@ -620,8 +624,8 @@ static PMIXUPDATE mixUpdateCreate( ADSXAREAP pArea )
static void mixUpdateDestroy( ADSXAREAP pArea, PMIXUPDATE pUpdate, int fUpdate )
{
PMIXTAG pTag = pArea->pTagList;
int iTag;
PMIXTAG pTag = pArea->pTagList;
int iTag;
if( ! pUpdate )
return;
@@ -635,13 +639,13 @@ static void mixUpdateDestroy( ADSXAREAP pArea, PMIXUPDATE pUpdate, int fUpdate )
iTag = 0;
while( pTag )
{
HB_BOOL bFor = pTag->pForItem == NULL || mixEvalCond( pTag->pForItem, pArea );
HB_BOOL bFor = pTag->pForItem == NULL || mixEvalCond( pTag->pForItem, pArea );
if( pUpdate[ iTag ] == ( HB_ULONG ) -1 )
{
if( bFor )
{
HB_ULONG ulKeyPos;
PMIXKEY pKey = mixKeyEval( pTag, pArea );
HB_ULONG ulKeyPos;
PMIXKEY pKey = mixKeyEval( pTag, pArea );
mixFindKey( pTag, pKey, &ulKeyPos );
// insert key into index
@@ -658,12 +662,12 @@ static void mixUpdateDestroy( ADSXAREAP pArea, PMIXUPDATE pUpdate, int fUpdate )
}
else
{
PMIXKEY pKey = mixKeyEval( pTag, pArea );
PMIXKEY pKey = mixKeyEval( pTag, pArea );
if( bFor )
{
if( mixCompareKey( pTag, pUpdate[ iTag ], pKey ) != 0 )
{
HB_ULONG ulKeyPos;
HB_ULONG ulKeyPos;
mixKeyFree( pTag->pKeys[ pUpdate[ iTag ] ] );
mixFindKey( pTag, pKey, &ulKeyPos );
if( ulKeyPos == pUpdate[ iTag ] || ulKeyPos == pUpdate[ iTag ] + 1 )
@@ -705,8 +709,8 @@ static void mixUpdateDestroy( ADSXAREAP pArea, PMIXUPDATE pUpdate, int fUpdate )
/************************************************************************
* ADSX RDD METHODS
*************************************************************************/
* ADSX RDD METHODS
*************************************************************************/
static HB_ERRCODE adsxGoBottom( ADSXAREAP pArea )
{
@@ -766,10 +770,10 @@ static HB_ERRCODE adsxGoTop( ADSXAREAP pArea )
static HB_ERRCODE adsxSeek( ADSXAREAP pArea, HB_BOOL bSoftSeek, PHB_ITEM pKey, HB_BOOL bFindLast )
{
PMIXKEY pMixKey;
HB_ULONG ulKeyPos, ulRecNo;
HB_ERRCODE errCode;
HB_BOOL fFound = HB_FALSE;
PMIXKEY pMixKey;
HB_ULONG ulKeyPos, ulRecNo;
HB_ERRCODE errCode;
HB_BOOL fFound = HB_FALSE;
if( ! pArea->pTagCurrent )
return SUPER_SEEK( ( AREAP ) pArea, bSoftSeek, pKey, bFindLast );
@@ -790,12 +794,12 @@ static HB_ERRCODE adsxSeek( ADSXAREAP pArea, HB_BOOL bSoftSeek, PHB_ITEM pKey, H
if( ulKeyPos > 0 && mixCompareKey( pArea->pTagCurrent, ulKeyPos - 1, pMixKey ) == -1 )
{
ulRecNo = pArea->pTagCurrent->pKeys[ ulKeyPos - 1 ]->rec;
fFound = HB_TRUE;
fFound = HB_TRUE;
}
else if( ulKeyPos < pArea->pTagCurrent->ulRecCount )
{
ulRecNo = pArea->pTagCurrent->pKeys[ ulKeyPos ]->rec;
fFound = HB_FALSE;
fFound = HB_FALSE;
}
}
else
@@ -803,7 +807,7 @@ static HB_ERRCODE adsxSeek( ADSXAREAP pArea, HB_BOOL bSoftSeek, PHB_ITEM pKey, H
if( ulKeyPos < pArea->pTagCurrent->ulRecCount )
{
ulRecNo = pArea->pTagCurrent->pKeys[ ulKeyPos ]->rec;
fFound = mixCompareKey( pArea->pTagCurrent, ulKeyPos, pMixKey ) == 1;
fFound = mixCompareKey( pArea->pTagCurrent, ulKeyPos, pMixKey ) == 1;
}
}
@@ -823,9 +827,9 @@ static HB_ERRCODE adsxSeek( ADSXAREAP pArea, HB_BOOL bSoftSeek, PHB_ITEM pKey, H
static HB_ERRCODE adsxSkip( ADSXAREAP pArea, HB_LONG lToSkip )
{
PMIXKEY pKey;
HB_ULONG ulKeyPos;
HB_ERRCODE errCode = HB_SUCCESS;
PMIXKEY pKey;
HB_ULONG ulKeyPos;
HB_ERRCODE errCode = HB_SUCCESS;
if( ! pArea->pTagCurrent || lToSkip == 0 )
return SUPER_SKIP( ( AREAP ) pArea, lToSkip );
@@ -838,7 +842,7 @@ static HB_ERRCODE adsxSkip( ADSXAREAP pArea, HB_LONG lToSkip )
if( lToSkip > 0 )
{
if( !pArea->adsarea.fPositioned )
if( ! pArea->adsarea.fPositioned )
{
errCode = SELF_GOTO( ( AREAP ) pArea, pArea->adsarea.ulRecNo );
}
@@ -850,8 +854,8 @@ static HB_ERRCODE adsxSkip( ADSXAREAP pArea, HB_LONG lToSkip )
pKey = mixKeyEval( pArea->pTagCurrent, pArea );
if( mixFindKey( pArea->pTagCurrent, pKey, &ulKeyPos ) &&
pArea->pTagCurrent->ulRecCount > ( HB_ULONG ) lToSkip &&
ulKeyPos < pArea->pTagCurrent->ulRecCount - ( HB_ULONG ) lToSkip )
pArea->pTagCurrent->ulRecCount > ( HB_ULONG ) lToSkip &&
ulKeyPos < pArea->pTagCurrent->ulRecCount - ( HB_ULONG ) lToSkip )
{
if( SELF_GOTO( ( AREAP ) pArea, pArea->pTagCurrent->pKeys[ ulKeyPos + lToSkip ]->rec ) == HB_FAILURE )
errCode = HB_FAILURE;
@@ -871,7 +875,7 @@ static HB_ERRCODE adsxSkip( ADSXAREAP pArea, HB_LONG lToSkip )
}
else
{
if( !pArea->adsarea.fPositioned )
if( ! pArea->adsarea.fPositioned )
{
errCode = SELF_GOBOTTOM( ( AREAP ) pArea );
pArea->adsarea.area.fBottom = HB_FALSE;
@@ -885,8 +889,8 @@ static HB_ERRCODE adsxSkip( ADSXAREAP pArea, HB_LONG lToSkip )
pKey = mixKeyEval( pArea->pTagCurrent, pArea );
if( mixFindKey( pArea->pTagCurrent, pKey, &ulKeyPos ) &&
pArea->pTagCurrent->ulRecCount >= ( HB_ULONG ) ( -lToSkip ) &&
ulKeyPos >= ( HB_ULONG ) ( -lToSkip ) )
pArea->pTagCurrent->ulRecCount >= ( HB_ULONG ) ( -lToSkip ) &&
ulKeyPos >= ( HB_ULONG ) ( -lToSkip ) )
{
if( SELF_GOTO( ( AREAP ) pArea, pArea->pTagCurrent->pKeys[ ulKeyPos + lToSkip ]->rec ) == HB_FAILURE )
errCode = HB_FAILURE;
@@ -924,7 +928,7 @@ static HB_ERRCODE adsxPutValue( ADSXAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pIt
static HB_ERRCODE adsxClose( ADSXAREAP pArea )
{
PMIXTAG pTag;
PMIXTAG pTag;
pArea->pTagCurrent = NULL;
while( pArea->pTagList )
@@ -944,7 +948,7 @@ static HB_ERRCODE adsxCreate( ADSXAREAP pArea, LPDBOPENINFO pCreateInfo )
if( pCreateInfo->cdpId )
{
pArea->adsarea.area.cdPage = hb_cdpFind( pCreateInfo->cdpId );
if( !pArea->adsarea.area.cdPage )
if( ! pArea->adsarea.area.cdPage )
pArea->adsarea.area.cdPage = hb_vmCDP();
}
else
@@ -986,7 +990,7 @@ static HB_ERRCODE adsxOpen( ADSXAREAP pArea, LPDBOPENINFO pOpenInfo )
if( pOpenInfo->cdpId )
{
pArea->adsarea.area.cdPage = hb_cdpFind( pOpenInfo->cdpId );
if( !pArea->adsarea.area.cdPage )
if( ! pArea->adsarea.area.cdPage )
pArea->adsarea.area.cdPage = hb_vmCDP();
}
else
@@ -997,11 +1001,11 @@ static HB_ERRCODE adsxOpen( ADSXAREAP pArea, LPDBOPENINFO pOpenInfo )
}
static HB_ERRCODE adsxStructSize( ADSXAREAP pArea, HB_USHORT* StructSize )
static HB_ERRCODE adsxStructSize( ADSXAREAP pArea, HB_USHORT * StructSize )
{
HB_SYMBOL_UNUSED( pArea );
* StructSize = sizeof( ADSXAREA );
*StructSize = sizeof( ADSXAREA );
return HB_SUCCESS;
}
@@ -1016,7 +1020,7 @@ static HB_ERRCODE adsxSysName( ADSXAREAP pArea, HB_BYTE * pBuffer )
u32RetVal = AdsGetTableType( pArea->adsarea.hTable, &u16TableType );
if( u32RetVal != AE_SUCCESS )
{
HB_TRACE(HB_TR_DEBUG, ("Error in adsxSysName: %lu pArea->adsarea.hTable %p", ( HB_ULONG ) u32RetVal, ( void * ) ( HB_PTRDIFF ) pArea->adsarea.hTable));
HB_TRACE( HB_TR_DEBUG, ( "Error in adsxSysName: %lu pArea->adsarea.hTable %p", ( HB_ULONG ) u32RetVal, ( void * ) ( HB_PTRDIFF ) pArea->adsarea.hTable ) );
u16TableType = ( UNSIGNED16 ) pArea->adsarea.iFileType;
}
}
@@ -1073,17 +1077,17 @@ static HB_ERRCODE adsxOrderListFocus( ADSXAREAP pArea, LPDBORDERINFO pOrderInfo
static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo )
{
PMIXTAG pTagNew, pTag;
PHB_ITEM pKeyItem, pForItem = NULL, pWhileItem = NULL, pResult;
HB_ULONG ulRecNo;
HB_USHORT uiLen;
HB_BYTE bType;
UNSIGNED16 bValidExpr;
HB_BOOL bUseADS;
PMIXTAG pTagNew, pTag;
PHB_ITEM pKeyItem, pForItem = NULL, pWhileItem = NULL, pResult;
HB_ULONG ulRecNo;
HB_USHORT uiLen;
HB_BYTE bType;
UNSIGNED16 bValidExpr;
HB_BOOL bUseADS;
/* Test key expression */
bValidExpr = 0;
AdsIsExprValid( pArea->adsarea.hTable, (UNSIGNED8*) hb_itemGetCPtr( pOrderInfo->abExpr ), &bValidExpr );
AdsIsExprValid( pArea->adsarea.hTable, ( UNSIGNED8 * ) hb_itemGetCPtr( pOrderInfo->abExpr ), &bValidExpr );
bUseADS = bValidExpr;
if( bUseADS && pArea->adsarea.area.lpdbOrdCondInfo )
@@ -1092,7 +1096,7 @@ static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderIn
if( pArea->adsarea.area.lpdbOrdCondInfo->abFor )
{
bValidExpr = 0;
AdsIsExprValid( pArea->adsarea.hTable, (UNSIGNED8*) pArea->adsarea.area.lpdbOrdCondInfo->abFor, &bValidExpr );
AdsIsExprValid( pArea->adsarea.hTable, ( UNSIGNED8 * ) pArea->adsarea.area.lpdbOrdCondInfo->abFor, &bValidExpr );
bUseADS = bValidExpr;
}
else if( pArea->adsarea.area.lpdbOrdCondInfo->itmCobFor )
@@ -1106,7 +1110,7 @@ static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderIn
if( pArea->adsarea.area.lpdbOrdCondInfo->abWhile )
{
bValidExpr = 0;
AdsIsExprValid( pArea->adsarea.hTable, (UNSIGNED8*) pArea->adsarea.area.lpdbOrdCondInfo->abWhile, &bValidExpr );
AdsIsExprValid( pArea->adsarea.hTable, ( UNSIGNED8 * ) pArea->adsarea.area.lpdbOrdCondInfo->abWhile, &bValidExpr );
bUseADS = ( bValidExpr != 0 );
}
else if( pArea->adsarea.area.lpdbOrdCondInfo->itmCobWhile )
@@ -1151,7 +1155,8 @@ static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderIn
case HB_IT_STRING | HB_IT_MEMO:
bType = 'C';
uiLen = ( HB_USHORT ) hb_itemGetCLen( pResult );
if( uiLen > MIX_MAXKEYLEN ) uiLen = MIX_MAXKEYLEN;
if( uiLen > MIX_MAXKEYLEN )
uiLen = MIX_MAXKEYLEN;
break;
case HB_IT_INTEGER:
@@ -1284,7 +1289,7 @@ static HB_ERRCODE adsxOrderCreate( ADSXAREAP pArea, LPDBORDERCREATEINFO pOrderIn
static HB_ERRCODE adsxOrderDestroy( ADSXAREAP pArea, LPDBORDERINFO pOrderInfo )
{
PMIXTAG pTag, pTag2;
PMIXTAG pTag, pTag2;
/* TODO: ADS RDD missing implementation of ordDestroy( nOrder ) */
if( SUPER_ORDDESTROY( ( AREAP ) pArea, pOrderInfo ) == HB_SUCCESS )
@@ -1292,7 +1297,8 @@ static HB_ERRCODE adsxOrderDestroy( ADSXAREAP pArea, LPDBORDERINFO pOrderInfo )
pTag = mixFindTag( pArea, pOrderInfo->itmOrder );
if( pTag ) {
if( pTag )
{
if( pTag == pArea->pTagList )
pArea->pTagList = pTag->pNext;
@@ -1403,14 +1409,14 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN
hb_itemMove( pOrderInfo->itmResult, pItem );
break;
}
case DBOI_KEYCOUNT :
case DBOI_KEYCOUNTRAW : /* ignore filter but RESPECT SCOPE */
case DBOI_KEYCOUNT:
case DBOI_KEYCOUNTRAW: /* ignore filter but RESPECT SCOPE */
hb_itemPutNL( pOrderInfo->itmResult, pTag->ulRecCount );
break;
case DBOI_POSITION :
case DBOI_RECNO :
case DBOI_KEYNORAW :
case DBOI_POSITION:
case DBOI_RECNO:
case DBOI_KEYNORAW:
if( uiIndex == DBOI_POSITION && pOrderInfo->itmNewVal && HB_IS_NUMERIC( pOrderInfo->itmNewVal ) )
{
HB_ULONG ulPos;
@@ -1420,14 +1426,14 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN
if( ulPos > 0 && ulPos <= pTag->ulRecCount )
SELF_GOTO( ( AREAP ) pArea, pTag->pKeys[ ulPos - 1 ]->rec );
pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, !pArea->adsarea.area.fEof );
pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, ! pArea->adsarea.area.fEof );
}
else
{
PMIXKEY pKey;
HB_ULONG ulKeyPos;
if( !pArea->adsarea.fPositioned )
if( ! pArea->adsarea.fPositioned )
SELF_GOTO( ( AREAP ) pArea, pArea->adsarea.ulRecNo );
else
pArea->adsarea.area.fEof = HB_FALSE;
@@ -1435,7 +1441,7 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN
pKey = mixKeyEval( pTag, pArea );
hb_itemPutNL( pOrderInfo->itmResult,
mixFindKey( pTag, pKey, &ulKeyPos ) ? (ulKeyPos + 1) : 0 );
mixFindKey( pTag, pKey, &ulKeyPos ) ? ( ulKeyPos + 1 ) : 0 );
mixKeyFree( pKey );
}
break;
@@ -1445,32 +1451,32 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN
{
HB_ULONG ulPos;
ulPos = ( HB_ULONG ) ( hb_itemGetND( pOrderInfo->itmNewVal ) * (double) pTag->ulRecCount );
ulPos = ( HB_ULONG ) ( hb_itemGetND( pOrderInfo->itmNewVal ) * ( double ) pTag->ulRecCount );
if( ulPos > 0 && ulPos <= pTag->ulRecCount )
SELF_GOTO( ( AREAP ) pArea, pTag->pKeys[ ulPos - 1 ]->rec );
pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, !pArea->adsarea.area.fEof );
pOrderInfo->itmResult = hb_itemPutL( pOrderInfo->itmResult, ! pArea->adsarea.area.fEof );
}
else
{
PMIXKEY pKey;
HB_ULONG ulKeyPos;
if( !pArea->adsarea.fPositioned )
if( ! pArea->adsarea.fPositioned )
SELF_GOTO( ( AREAP ) pArea, pArea->adsarea.ulRecNo );
else
pArea->adsarea.area.fEof = HB_FALSE;
pKey = mixKeyEval( pTag, pArea );
if( ! mixFindKey( pTag, pKey, &ulKeyPos + 1 ) )
ulKeyPos = 0;
if( ! mixFindKey( pTag, pKey, &ulKeyPos + 1 ) )
ulKeyPos = 0;
mixKeyFree( pKey );
pOrderInfo->itmResult = hb_itemPutND( pOrderInfo->itmResult,
(double) ulKeyPos / (double) pTag->ulRecCount );
( double ) ulKeyPos / ( double ) pTag->ulRecCount );
}
break;
@@ -1482,7 +1488,7 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN
hb_itemPutC( pOrderInfo->itmResult, NULL );
break;
case DBOI_FULLPATH :
case DBOI_FULLPATH:
hb_itemPutC( pOrderInfo->itmResult, NULL );
break;
@@ -1492,7 +1498,7 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN
case DBOI_ORDERCOUNT:
{
UNSIGNED16 usOrder = 0;
UNSIGNED16 usOrder = 0;
AdsGetNumIndexes( pArea->adsarea.hTable, &usOrder );
pTag = pArea->pTagList;
@@ -1501,14 +1507,14 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN
pTag = pTag->pNext;
usOrder++;
}
hb_itemPutNI( pOrderInfo->itmResult, (int) usOrder );
hb_itemPutNI( pOrderInfo->itmResult, ( int ) usOrder );
break;
}
case DBOI_NUMBER :
case DBOI_NUMBER:
{
PMIXTAG pTag2;
UNSIGNED16 usOrder = 0;
PMIXTAG pTag2;
UNSIGNED16 usOrder = 0;
AdsGetNumIndexes( pArea->adsarea.hTable, &usOrder );
pTag2 = pArea->pTagList;
@@ -1518,27 +1524,27 @@ static HB_ERRCODE adsxOrderInfo( ADSXAREAP pArea, HB_USHORT uiIndex, LPDBORDERIN
pTag2 = pTag2->pNext;
usOrder++;
}
hb_itemPutNI( pOrderInfo->itmResult, (int) usOrder );
hb_itemPutNI( pOrderInfo->itmResult, ( int ) usOrder );
break;
}
case DBOI_CUSTOM :
case DBOI_CUSTOM:
hb_itemPutL( pOrderInfo->itmResult, HB_FALSE );
break;
case DBOI_OPTLEVEL :
case DBOI_OPTLEVEL:
hb_itemPutNI( pOrderInfo->itmResult, DBOI_OPTIMIZED_NONE );
break;
case DBOI_KEYADD :
case DBOI_KEYADD:
hb_itemPutL( pOrderInfo->itmResult, HB_FALSE );
break;
case DBOI_KEYDELETE :
case DBOI_KEYDELETE:
hb_itemPutL( pOrderInfo->itmResult, HB_FALSE );
break;
case DBOI_AUTOOPEN :
case DBOI_AUTOOPEN:
hb_itemPutL( pOrderInfo->itmResult, HB_FALSE );
break;
@@ -1649,7 +1655,7 @@ static RDDFUNCS adsxTable = { NULL,
NULL,
NULL,
NULL,
NULL };
NULL };
static void adsxRegisterRDD( HB_USHORT * pusRddId, const char * szRddName )
@@ -1667,7 +1673,7 @@ static void adsxRegisterRDD( HB_USHORT * pusRddId, const char * szRddName )
HB_ERRCODE errCode;
if( puiCount )
* puiCount = RDDFUNCSCOUNT;
*puiCount = RDDFUNCSCOUNT;
errCode = hb_rddInheritEx( pTable, &adsxTable, &adsxSuper, szRddName, puiSuperRddId );
if( errCode == HB_SUCCESS )

View File

@@ -56,57 +56,57 @@
#include <windows.h>
#endif
#if !defined( WIN32 ) && defined( HB_OS_WIN )
#if ! defined( WIN32 ) && defined( HB_OS_WIN )
#define WIN32
#endif
#if !defined( unix ) && defined( HB_OS_UNIX )
#if ! defined( unix ) && defined( HB_OS_UNIX )
#define unix
#endif
#if !defined( x64 ) && defined( HB_ARCH_64BIT )
#if ! defined( x64 ) && defined( HB_ARCH_64BIT )
#define x64
#endif
#if defined( __WATCOMC__ ) || defined( __LCC__ ) || ( defined( __MINGW32__ ) && ! defined( _declspec ) )
#define _declspec( dllexport ) __declspec( dllexport )
#define _declspec( dllexport ) __declspec( dllexport )
#endif
#include "ace.h"
/* Autodetect ACE version. */
#if defined( ADS_GET_FORMAT_WEB )
#define _ADS_LIB_VERSION 1100 /* or upper */
#define _ADS_LIB_VERSION 1100 /* or upper */
#elif defined( ADS_GET_UTF8 )
#define _ADS_LIB_VERSION 1010
#define _ADS_LIB_VERSION 1010
#elif defined( ADS_DEFAULT_SQL_TIMEOUT )
#define _ADS_LIB_VERSION 1000
#define _ADS_LIB_VERSION 1000
#elif defined( DANISH_ADS_CS_AS_1252 )
#define _ADS_LIB_VERSION 910
#define _ADS_LIB_VERSION 910
#elif defined( ADS_NOTIFICATION_CONNECTION )
#define _ADS_LIB_VERSION 900
#define _ADS_LIB_VERSION 900
#elif defined( ADS_UDP_IP_CONNECTION )
#define _ADS_LIB_VERSION 810
#define _ADS_LIB_VERSION 810
#elif defined( ADS_REPLICATION_CONNECTION )
#define _ADS_LIB_VERSION 800
#define _ADS_LIB_VERSION 800
#elif defined( ADS_NOT_AUTO_OPEN )
#define _ADS_LIB_VERSION 710
#define _ADS_LIB_VERSION 710
#elif defined( ADS_FTS_INDEX_ORDER )
#define _ADS_LIB_VERSION 700
#define _ADS_LIB_VERSION 700
#elif defined( ADS_COMPRESS_ALWAYS )
#define _ADS_LIB_VERSION 620
#define _ADS_LIB_VERSION 620
#elif defined( ADS_READ_ALL_COLUMNS )
#define _ADS_LIB_VERSION 610
#define _ADS_LIB_VERSION 610
#elif defined( ADS_USER_DEFINED )
#define _ADS_LIB_VERSION 600
#define _ADS_LIB_VERSION 600
#else
#define _ADS_LIB_VERSION 500
#define _ADS_LIB_VERSION 500
#endif
/* Make sure to not allow a manual override requesting
a higher version than the one of ACE. [vszakats] */
#if !defined( ADS_LIB_VERSION )
#define ADS_LIB_VERSION _ADS_LIB_VERSION
#if ! defined( ADS_LIB_VERSION )
#define ADS_LIB_VERSION _ADS_LIB_VERSION
#elif ADS_LIB_VERSION > _ADS_LIB_VERSION
#undef ADS_LIB_VERSION
#define ADS_LIB_VERSION _ADS_LIB_VERSION
#define ADS_LIB_VERSION _ADS_LIB_VERSION
#endif
HB_EXTERN_BEGIN
@@ -143,12 +143,12 @@ typedef struct _ADSAREA_
HB_BYTE * pRecord; /* Buffer of record data */
HB_ULONG maxFieldLen; /* Max field length in table record */
HB_BOOL fPositioned; /* HB_TRUE if we are not at phantom record */
HB_BOOL fShared; /* Shared file */
HB_BOOL fReadonly; /* Read only file */
HB_BOOL fFLocked; /* HB_TRUE if file is locked */
HB_BOOL fPositioned; /* HB_TRUE if we are not at phantom record */
HB_BOOL fShared; /* Shared file */
HB_BOOL fReadonly; /* Read only file */
HB_BOOL fFLocked; /* HB_TRUE if file is locked */
int iFileType; /* adt/cdx/ntx/vfp */
int iFileType; /* adt/cdx/ntx/vfp */
ADSHANDLE hTable;
ADSHANDLE hOrdCurrent;
@@ -157,17 +157,18 @@ typedef struct _ADSAREA_
typedef ADSAREA * ADSAREAP;
#define SELF_RESETREL( p ) if( (p)->lpdbPendingRel ) \
{ \
if( (p)->lpdbPendingRel->isScoped && \
!(p)->lpdbPendingRel->isOptimized ) \
SELF_FORCEREL( &(p)->area ); \
else \
(p)->lpdbPendingRel = NULL; \
}
#define SELF_RESETREL( p ) \
if( ( p )->lpdbPendingRel ) \
{ \
if( ( p )->lpdbPendingRel->isScoped && \
! ( p )->lpdbPendingRel->isOptimized ) \
SELF_FORCEREL( &( p )->area ); \
else \
( p )->lpdbPendingRel = NULL; \
}
#define HB_RDD_ADS_VERSION_STRING "ADS RDD 1.4"
#define HB_RDD_ADS_VERSION_STRING "ADS RDD 1.4"
#if defined( HB_OS_WIN )
# define ADS_USE_OEM_TRANSLATION
@@ -175,17 +176,17 @@ typedef ADSAREA * ADSAREAP;
# undef ADS_USE_OEM_TRANSLATION
#endif
#define HB_ADS_PARCONNECTION( n ) ( ( ADSHANDLE ) hb_parnintdef( n, hb_ads_getConnection() ) )
#define HB_ADS_RETCONNECTION( h ) hb_retnint( h )
#define HB_ADS_GETCONNECTION( p ) ( ( hb_itemType( p ) & HB_IT_NUMERIC ) ? ( ADSHANDLE ) hb_itemGetNInt( p ) : hb_ads_getConnection() )
#define HB_ADS_PUTCONNECTION( p, h ) hb_itemPutNInt( ( p ), ( ADSHANDLE ) ( h ) )
#define HB_ADS_DEFCONNECTION( h, s ) hb_ads_defConnection( ( h ), ( s ) )
#define HB_ADS_PARCONNECTION( n ) ( ( ADSHANDLE ) hb_parnintdef( n, hb_ads_getConnection() ) )
#define HB_ADS_RETCONNECTION( h ) hb_retnint( h )
#define HB_ADS_GETCONNECTION( p ) ( ( hb_itemType( p ) & HB_IT_NUMERIC ) ? ( ADSHANDLE ) hb_itemGetNInt( p ) : hb_ads_getConnection() )
#define HB_ADS_PUTCONNECTION( p, h ) hb_itemPutNInt( ( p ), ( ADSHANDLE ) ( h ) )
#define HB_ADS_DEFCONNECTION( h, s ) hb_ads_defConnection( ( h ), ( s ) )
extern int hb_ads_iFileType; /* current global setting */
extern int hb_ads_iLockType;
extern int hb_ads_iCheckRights;
extern int hb_ads_iCharType;
extern HB_BOOL hb_ads_bTestRecLocks;
extern int hb_ads_iFileType; /* current global setting */
extern int hb_ads_iLockType;
extern int hb_ads_iCheckRights;
extern int hb_ads_iCharType;
extern HB_BOOL hb_ads_bTestRecLocks;
extern ADSHANDLE hb_ads_getConnection( void );
extern ADSHANDLE hb_ads_defConnection( ADSHANDLE hConnect, const char * szName );
@@ -213,8 +214,8 @@ extern ADSAREAP hb_adsGetWorkAreaPointer( void );
UNSIGNED32 * pulLen );
#else
# define hb_adsOemToAnsi( s, l ) ( ( char * ) ( s ) )
# define hb_adsAnsiToOem( s, l ) ( ( char * ) ( s ) )
# define hb_adsOemToAnsi( s, l ) ( ( char * ) ( s ) )
# define hb_adsAnsiToOem( s, l ) ( ( char * ) ( s ) )
# define hb_adsOemAnsiFree( s )
#endif

View File

@@ -114,7 +114,7 @@ HB_FUNC( BM_DBSEEKWILD )
fUnlock = HB_FALSE;
OrderInfo.itmNewVal = NULL;
if( !fCont )
if( ! fCont )
{
const char * szKey;
@@ -134,7 +134,7 @@ HB_FUNC( BM_DBSEEKWILD )
}
}
if( !fFound && errCode == HB_SUCCESS )
if( ! fFound && errCode == HB_SUCCESS )
{
OrderInfo.itmNewVal = hb_param( 1, HB_IT_STRING );
errCode = SELF_ORDINFO( pArea, fBack ? DBOI_SKIPWILDBACK :
@@ -171,7 +171,7 @@ HB_FUNC( BM_DBSEEKWILD )
hb_itemRelease( OrderInfo.itmResult );
if( !fFound && !fSoft && errCode == HB_SUCCESS )
if( ! fFound && ! fSoft && errCode == HB_SUCCESS )
SELF_GOTO( pArea, 0 );
if( pArray )
@@ -194,26 +194,30 @@ HB_FUNC( BM_TURBO )
typedef struct
{
HB_U32 maxrec;
HB_U32 map[ 1 ];
HB_U32 maxrec;
HB_U32 map[ 1 ];
} BM_FILTER, * PBM_FILTER;
#define BM_GETFILTER( p ) ( ( PBM_FILTER ) ( p )->dbfi.lpvCargo )
#define BM_ITEMSIZE( n ) ( ( ( n ) + 31 ) >> 5 )
#define BM_BYTESIZE( n ) ( ( ( ( n ) + 31 ) >> 5 ) * sizeof( HB_U32 ) )
#define BM_GETFILTER( p ) ( ( PBM_FILTER ) ( p )->dbfi.lpvCargo )
#define BM_ITEMSIZE( n ) ( ( ( n ) + 31 ) >> 5 )
#define BM_BYTESIZE( n ) ( ( ( ( n ) + 31 ) >> 5 ) * sizeof( HB_U32 ) )
#define BM_SETREC( p, r ) do { if( (r) > 0 && (r) <= (p)->maxrec ) \
(p)->map[((r)-1)>>5] |= (1<<(((r)-1)&0x1f)); \
} while(0)
#define BM_CLRREC( p, r ) do { if( (r) > 0 && (r) <= (p)->maxrec ) \
(p)->map[((r)-1)>>5] &= ~(1<<(((r)-1)&0x1f)); \
} while(0)
#define BM_GETREC( p, r ) ( ( (r) > 0 && (r) <= (p)->maxrec ) && \
( (p)->map[((r)-1)>>5] & (1<<(((r)-1)&0x1f)) ) != 0 )
#define BM_SETREC( p, r ) \
do { if( ( r ) > 0 && ( r ) <= ( p )->maxrec ) \
( p )->map[ ( ( r ) - 1 ) >> 5 ] |= ( 1 << ( ( ( r ) - 1 ) & 0x1f ) ); \
} while( 0 )
#define SUPERTABLE ( hb_bmGetRdd( pArea->rddID ) )
#define BM_CLRREC( p, r ) \
do { if( ( r ) > 0 && ( r ) <= ( p )->maxrec ) \
( p )->map[ ( ( r ) - 1 ) >> 5 ] &= ~( 1 << ( ( ( r ) - 1 ) & 0x1f ) ); \
} while( 0 )
#define BM_RDD_MAX 8
#define BM_GETREC( p, r ) ( ( ( r ) > 0 && ( r ) <= ( p )->maxrec ) && \
( ( p )->map[ ( ( r ) - 1 ) >> 5 ] & ( 1 << ( ( ( r ) - 1 ) & 0x1f ) ) ) != 0 )
#define SUPERTABLE ( hb_bmGetRdd( pArea->rddID ) )
#define BM_RDD_MAX 8
static HB_USHORT s_uiRdds[ BM_RDD_MAX ];
static int s_iRddCount = 0;
@@ -263,21 +267,21 @@ static HB_BOOL hb_bmCheckRecordFilter( AREAP pArea, HB_ULONG ulRecNo )
if( fDeleted )
SELF_DELETED( pArea, &lResult );
if( !lResult && pArea->dbfi.itmCobExpr )
if( ! lResult && pArea->dbfi.itmCobExpr )
{
PHB_ITEM pResult = hb_vmEvalBlock( pArea->dbfi.itmCobExpr );
lResult = HB_IS_LOGICAL( pResult ) && !hb_itemGetL( pResult );
}
}
}
return !lResult;
return ! lResult;
}
static AREAP hb_bmGetCurrentWorkArea( void )
{
AREAP pArea = ( AREAP ) hb_rddGetCurrentWorkAreaPointer();
if( !pArea )
if( ! pArea )
hb_errRT_DBCMD( EG_NOTABLE, EDBCMD_NOTABLE, NULL, HB_ERR_FUNCNAME );
else if( hb_bmGetRdd( pArea->rddID ) == NULL )
{
@@ -292,7 +296,7 @@ static PHB_ITEM hb_bmGetArrayParam( int iParam )
{
PHB_ITEM pArray = hb_param( iParam, HB_IT_ARRAY );
if( !pArray )
if( ! pArray )
hb_errRT_DBCMD( EG_ARG, EDBCMD_BADPARAMETER, NULL, HB_ERR_FUNCNAME );
return pArray;
@@ -456,19 +460,19 @@ static HB_BOOL hb_bmEvalFilter( AREAP pArea, HB_BOOL fUpdate )
if( pBM )
{
SELF_RECNO( pArea, &ulRecNo );
if( !fUpdate && ! BM_GETREC( pBM, ulRecNo ) )
if( ! fUpdate && ! BM_GETREC( pBM, ulRecNo ) )
return HB_FALSE;
}
if( pArea->dbfi.itmCobExpr )
{
PHB_ITEM pResult = hb_vmEvalBlock( pArea->dbfi.itmCobExpr );
fResult = !HB_IS_LOGICAL( pResult ) || hb_itemGetL( pResult );
fResult = ! HB_IS_LOGICAL( pResult ) || hb_itemGetL( pResult );
}
if( fResult && hb_setGetDeleted() )
{
SELF_DELETED( pArea, &fResult );
fResult = !fResult;
fResult = ! fResult;
}
if( pBM )
@@ -497,12 +501,12 @@ static HB_ERRCODE hb_bmSkipFilter( AREAP pArea, HB_LONG lUpDown )
HB_BOOL fBottom;
HB_ERRCODE errCode;
if( !hb_setGetDeleted() && pArea->dbfi.itmCobExpr == NULL && ! BM_GETFILTER( pArea ) )
if( ! hb_setGetDeleted() && pArea->dbfi.itmCobExpr == NULL && ! BM_GETFILTER( pArea ) )
return HB_SUCCESS;
lUpDown = ( lUpDown < 0 ? -1 : 1 );
fBottom = pArea->fBottom;
while( !pArea->fBof && !pArea->fEof && !hb_bmEvalFilter( pArea, HB_FALSE ) )
while( ! pArea->fBof && ! pArea->fEof && ! hb_bmEvalFilter( pArea, HB_FALSE ) )
{
errCode = SELF_SKIPRAW( pArea, lUpDown );
if( errCode != HB_SUCCESS )
@@ -543,7 +547,7 @@ static HB_ERRCODE hb_bmCountScope( AREAP pArea, void * pPtr, HB_LONG * plRec )
{
PBM_FILTER pBM = BM_GETFILTER( pArea );
if( pBM && pArea->dbfi.fFilter && !BM_GETREC( pBM, ( HB_ULONG ) *plRec ) )
if( pBM && pArea->dbfi.fFilter && ! BM_GETREC( pBM, ( HB_ULONG ) *plRec ) )
*plRec = 0;
return HB_SUCCESS;
@@ -741,13 +745,13 @@ static void hb_bmGetFuncTable( const char * szSuper )
uiRddId = ( HB_USHORT ) hb_parni( 4 );
puiSuperRddId = ( HB_USHORT * ) hb_parptr( 5 );
HB_TRACE(HB_TR_DEBUG, ("BM%s_GETFUNCTABLE(%p, %p, %p, %hu, %p)", szSuper, puiCount, pTable, pSuperTable, uiRddId, puiSuperRddId));
HB_TRACE( HB_TR_DEBUG, ( "BM%s_GETFUNCTABLE(%p, %p, %p, %hu, %p)", szSuper, puiCount, pTable, pSuperTable, uiRddId, puiSuperRddId ) );
if( puiCount && pTable && pSuperTable && puiSuperRddId )
{
HB_ERRCODE errCode;
* puiCount = RDDFUNCSCOUNT;
*puiCount = RDDFUNCSCOUNT;
errCode = hb_rddInheritEx( pTable, &bmTable, pSuperTable, szSuper, puiSuperRddId );
if( errCode == HB_SUCCESS )
hb_bmSetRdd( uiRddId );
@@ -764,7 +768,7 @@ static void hb_bmRddInit( void * cargo )
HB_SYMBOL_UNUSED( cargo );
fError = hb_rddRegister( "DBF", RDT_FULL ) > 1;
if( !fError )
if( ! fError )
{
hb_rddRegister( "DBFFPT", RDT_FULL );
if( hb_rddRegister( "DBFCDX", RDT_FULL ) <= 1 )
@@ -772,12 +776,12 @@ static void hb_bmRddInit( void * cargo )
if( hb_rddRegister( "BMDBFCDX", RDT_FULL ) > 1 )
fError = HB_TRUE;
}
if( !fError && hb_rddRegister( "DBFNTX", RDT_FULL ) <= 1 )
if( ! fError && hb_rddRegister( "DBFNTX", RDT_FULL ) <= 1 )
{
if( hb_rddRegister( "BMDBFNTX", RDT_FULL ) > 1 )
fError = HB_TRUE;
}
if( !fError && hb_rddRegister( "DBFNSX", RDT_FULL ) <= 1 )
if( ! fError && hb_rddRegister( "DBFNSX", RDT_FULL ) <= 1 )
{
if( hb_rddRegister( "BMDBFNSX", RDT_FULL ) > 1 )
fError = HB_TRUE;

View File

@@ -61,18 +61,18 @@
#include "hbrddsql.ch"
/*
====================================================================
SQLBASE
====================================================================
*/
====================================================================
SQLBASE
====================================================================
*/
#define MAX_FIELD_NAME 64
#define MAX_FIELD_NAME 64
#define SQLDD_ROWSET_INIT 256
#define SQLDD_ROWSET_RESIZE 64
#define SQLDD_ROWSET_INIT 256
#define SQLDD_ROWSET_RESIZE 64
#define SQLDD_FLAG_DELETED 1
#define SQLDD_FLAG_CACHED 2
#define SQLDD_FLAG_DELETED 1
#define SQLDD_FLAG_CACHED 2
typedef struct _SQLBASEAREA
@@ -83,77 +83,77 @@ typedef struct _SQLBASEAREA
* SQLBASE additions to the workarea structure
*/
LPDBRELINFO lpdbPendingRel;
LPDBRELINFO lpdbPendingRel;
HB_ULONG ulConnection;
struct _SQLDDCONNECTION * pConnection;
struct _SDDNODE * pSDD;
HB_ULONG ulConnection;
struct _SQLDDCONNECTION * pConnection;
struct _SDDNODE * pSDD;
char * szQuery; /* SQL query */
char * szQuery; /* SQL query */
HB_ULONG ulRecNo; /* Current record number */
HB_ULONG ulRecCount; /* Total records */
HB_ULONG ulRecMax; /* Size of pRow, pRowFlags buffer */
HB_ULONG ulRecNo; /* Current record number */
HB_ULONG ulRecCount; /* Total records */
HB_ULONG ulRecMax; /* Size of pRow, pRowFlags buffer */
void ** pRow; /* array of native pointers or cached PHB_ITEM */
HB_BYTE * pRowFlags;
void ** pRow; /* array of native pointers or cached PHB_ITEM */
HB_BYTE * pRowFlags;
void * pRecord; /* current record */
HB_BYTE bRecordFlags;
void * pRecord; /* current record */
HB_BYTE bRecordFlags;
HB_BOOL fFetched;
HB_BOOL fPositioned;
HB_BOOL fAppend;
HB_BOOL fRecordChanged;
HB_BOOL fFetched;
HB_BOOL fPositioned;
HB_BOOL fAppend;
HB_BOOL fRecordChanged;
void * pSDDData; /* SDD specific data */
void * pSDDData; /* SDD specific data */
} SQLBASEAREA, * SQLBASEAREAP;
typedef struct _SQLDDCONNECTION
{
struct _SDDNODE * pSDD;
unsigned int uiAreaCount;
struct _SDDNODE * pSDD;
unsigned int uiAreaCount;
void * pSDDConn; /* SDD specific data */
void * pSDDConn; /* SDD specific data */
} SQLDDCONNECTION;
/*
====================================================================
SQLMIX
====================================================================
*/
====================================================================
SQLMIX
====================================================================
*/
#define MIX_MAXKEYLEN 1024
#define MIX_MAXTAGNAMELEN 16
#define MIX_MAXKEYLEN 1024
#define MIX_MAXTAGNAMELEN 16
#define MIX_NODE_ORDER 2 /* >=2 */
#define MIX_NODE_ORDER 2 /* >=2 */
typedef struct _MIXKEY
{
HB_ULONG rec;
HB_BYTE notnul;
HB_BYTE val[ 1 ];
HB_ULONG rec;
HB_BYTE notnul;
HB_BYTE val[ 1 ];
} MIXKEY, * PMIXKEY;
typedef struct _MIXNODE
{
unsigned int Leaf;
unsigned int KeyCount;
struct _MIXNODE * Parent;
struct _MIXNODE * Child[ MIX_NODE_ORDER + 1 ];
unsigned int Leaf;
unsigned int KeyCount;
struct _MIXNODE * Parent;
struct _MIXNODE * Child[ MIX_NODE_ORDER + 1 ];
} MIXNODE, * PMIXNODE;
typedef struct _MIXNODELEAF
{
unsigned int Leaf;
unsigned int KeyCount;
struct _MIXNODE * Parent;
unsigned int Leaf;
unsigned int KeyCount;
struct _MIXNODE * Parent;
} MIXNODELEAF, * PMIXNODELEAF;
@@ -167,24 +167,24 @@ typedef struct _MIXTAG
PHB_ITEM pKeyItem;
PHB_ITEM pForItem;
HB_BYTE bType;
unsigned int uiKeyLen; /* Length of key */
unsigned int uiTotalLen; /* Total length of key structure */
HB_BYTE bType;
unsigned int uiKeyLen; /* Length of key */
unsigned int uiTotalLen; /* Total length of key structure */
HB_BOOL fEof;
HB_BOOL fBof;
HB_BOOL fCustom;
HB_BOOL fEof;
HB_BOOL fBof;
HB_BOOL fCustom;
PMIXNODE Root;
PMIXNODE Root;
PMIXKEY CurKey;
PMIXNODE CurNode;
unsigned int CurPos;
PMIXKEY CurKey;
PMIXNODE CurNode;
unsigned int CurPos;
PMIXKEY HotKey;
HB_BOOL HotFor;
PMIXKEY HotKey;
HB_BOOL HotFor;
PHB_CODEPAGE pCodepage; /* National sorttable for character key tags, NULL otherwise */
PHB_CODEPAGE pCodepage; /* National sorttable for character key tags, NULL otherwise */
} MIXTAG, * PMIXTAG;
@@ -204,51 +204,51 @@ typedef struct _SQLMIXAREA
/*
====================================================================
SQLDD
====================================================================
*/
====================================================================
SQLDD
====================================================================
*/
typedef HB_ERRCODE (* SDDFUNC_CONNECT )( SQLDDCONNECTION * pConnection, PHB_ITEM pItem );
typedef HB_ERRCODE (* SDDFUNC_DISCONNECT )( SQLDDCONNECTION * pConnection );
typedef HB_ERRCODE (* SDDFUNC_EXECUTE )( SQLDDCONNECTION * pConnection, PHB_ITEM pItem );
typedef HB_ERRCODE (* SDDFUNC_OPEN )( SQLBASEAREAP pArea );
typedef HB_ERRCODE (* SDDFUNC_CLOSE )( SQLBASEAREAP pArea );
typedef HB_ERRCODE (* SDDFUNC_GOTO )( SQLBASEAREAP pArea, HB_ULONG ulRecNo );
typedef HB_ERRCODE (* SDDFUNC_GETVALUE )( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem );
typedef HB_ERRCODE (* SDDFUNC_GETVARLEN )( SQLBASEAREAP pArea, HB_USHORT uiIndex, HB_ULONG * pLength );
typedef HB_ERRCODE ( *SDDFUNC_CONNECT )( SQLDDCONNECTION * pConnection, PHB_ITEM pItem );
typedef HB_ERRCODE ( *SDDFUNC_DISCONNECT )( SQLDDCONNECTION * pConnection );
typedef HB_ERRCODE ( *SDDFUNC_EXECUTE )( SQLDDCONNECTION * pConnection, PHB_ITEM pItem );
typedef HB_ERRCODE ( *SDDFUNC_OPEN )( SQLBASEAREAP pArea );
typedef HB_ERRCODE ( *SDDFUNC_CLOSE )( SQLBASEAREAP pArea );
typedef HB_ERRCODE ( *SDDFUNC_GOTO )( SQLBASEAREAP pArea, HB_ULONG ulRecNo );
typedef HB_ERRCODE ( *SDDFUNC_GETVALUE )( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem );
typedef HB_ERRCODE ( *SDDFUNC_GETVARLEN )( SQLBASEAREAP pArea, HB_USHORT uiIndex, HB_ULONG * pLength );
typedef struct _SDDNODE
{
struct _SDDNODE * pNext;
struct _SDDNODE * pNext;
const char * Name;
SDDFUNC_CONNECT Connect;
SDDFUNC_DISCONNECT Disconnect;
SDDFUNC_EXECUTE Execute;
SDDFUNC_OPEN Open;
SDDFUNC_CLOSE Close;
SDDFUNC_GOTO GoTo;
SDDFUNC_GETVALUE GetValue;
SDDFUNC_GETVARLEN GetVarLen;
const char * Name;
SDDFUNC_CONNECT Connect;
SDDFUNC_DISCONNECT Disconnect;
SDDFUNC_EXECUTE Execute;
SDDFUNC_OPEN Open;
SDDFUNC_CLOSE Close;
SDDFUNC_GOTO GoTo;
SDDFUNC_GETVALUE GetValue;
SDDFUNC_GETVARLEN GetVarLen;
} SDDNODE, * PSDDNODE;
/* Error subcodes */
#define ESQLDD_NOTCONNECTED 1901
#define ESQLDD_INVALIDFIELD 1902
#define ESQLDD_INVALIDQUERY 1903
#define ESQLDD_START 1904
#define ESQLDD_COMMIT 1905
#define ESQLDD_STMTALLOC 1906
#define ESQLDD_STMTDESCR 1907
#define ESQLDD_STMTFREE 1908
#define ESQLDD_FETCH 1909
#define ESQLDD_LOWMEMORY 1910
#define ESQLDD_NULLSDD 1911
#define ESQLDD_CONNALLOC 1912
#define ESQLDD_ENVALLOC 1913
#define ESQLDD_NOTCONNECTED 1901
#define ESQLDD_INVALIDFIELD 1902
#define ESQLDD_INVALIDQUERY 1903
#define ESQLDD_START 1904
#define ESQLDD_COMMIT 1905
#define ESQLDD_STMTALLOC 1906
#define ESQLDD_STMTDESCR 1907
#define ESQLDD_STMTFREE 1908
#define ESQLDD_FETCH 1909
#define ESQLDD_LOWMEMORY 1910
#define ESQLDD_NULLSDD 1911
#define ESQLDD_CONNALLOC 1912
#define ESQLDD_ENVALLOC 1913
HB_EXTERN_BEGIN

View File

@@ -58,21 +58,24 @@
#include "hbtrace.h"
#define SUPERTABLE ( &sqlbaseSuper )
#define SUPERTABLE ( &sqlbaseSuper )
#define CONNECTION_LIST_EXPAND 4
#define CONNECTION_LIST_EXPAND 4
static HB_USHORT s_rddidSQLBASE = 0;
static SQLDDCONNECTION ** s_pConnection = NULL;
static HB_ULONG s_ulConnectionCount = 0;
static HB_ULONG s_ulConnectionCurrent = 0;
static char * s_szError = NULL;
static HB_ERRCODE s_errCode = 0;
static char * s_szQuery = NULL;
static PHB_ITEM s_pItemNewID = NULL;
static unsigned long s_ulAffectedRows = 0;
static HB_USHORT s_rddidSQLBASE = 0;
static RDDFUNCS sqlbaseSuper;
static SQLDDCONNECTION ** s_pConnection = NULL;
static HB_ULONG s_ulConnectionCount = 0;
static HB_ULONG s_ulConnectionCurrent = 0;
static char * s_szError = NULL;
static HB_ERRCODE s_errCode = 0;
static char * s_szQuery = NULL;
static PHB_ITEM s_pItemNewID = NULL;
static unsigned long s_ulAffectedRows = 0;
static RDDFUNCS sqlbaseSuper;
void hb_rddsqlSetError( HB_ERRCODE errCode, const char * szError, const char * szQuery, PHB_ITEM pItem, unsigned long ulAffectedRows )
@@ -106,13 +109,13 @@ void hb_rddsqlSetError( HB_ERRCODE errCode, const char * szError, const char * s
static HB_ERRCODE hb_errRT_SQLBASE( HB_ERRCODE errGenCode, HB_ERRCODE errSubCode, const char * szDescription, const char * szOperation )
{
PHB_ITEM pError;
HB_ERRCODE iRet = HB_FAILURE;
PHB_ITEM pError;
HB_ERRCODE iRet = HB_FAILURE;
if( hb_vmRequestQuery() == 0 )
{
pError = hb_errRT_New( ES_ERROR, "SQLBASE", errGenCode, errSubCode, szDescription, szOperation, 0, EF_NONE );
iRet = hb_errLaunch( pError );
pError = hb_errRT_New( ES_ERROR, "SQLBASE", errGenCode, errSubCode, szDescription, szOperation, 0, EF_NONE );
iRet = hb_errLaunch( pError );
hb_itemRelease( pError );
}
return iRet;
@@ -190,17 +193,17 @@ static HB_ERRCODE sddGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
{
if( ulRecNo == 0 || ulRecNo > pArea->ulRecCount )
{
pArea->pRecord = pArea->pRow[ 0 ];
pArea->bRecordFlags = pArea->pRowFlags[ 0 ];
pArea->pRecord = pArea->pRow[ 0 ];
pArea->bRecordFlags = pArea->pRowFlags[ 0 ];
pArea->fPositioned = HB_FALSE;
pArea->fPositioned = HB_FALSE;
}
else
{
pArea->pRecord = pArea->pRow[ ulRecNo ];
pArea->bRecordFlags = pArea->pRowFlags[ ulRecNo ];
pArea->pRecord = pArea->pRow[ ulRecNo ];
pArea->bRecordFlags = pArea->pRowFlags[ ulRecNo ];
pArea->fPositioned = HB_TRUE;
pArea->fPositioned = HB_TRUE;
}
return HB_SUCCESS;
}
@@ -276,8 +279,8 @@ static HB_ERRCODE sqlbaseGoBottom( SQLBASEAREAP pArea )
if( ! pArea->fFetched && pArea->pSDD->GoTo( pArea, ( HB_ULONG ) -1 ) == HB_FAILURE )
return HB_FAILURE;
pArea->area.fTop = HB_FALSE;
pArea->area.fBottom = HB_TRUE;
pArea->area.fTop = HB_FALSE;
pArea->area.fBottom = HB_TRUE;
if( SELF_GOTO( ( AREAP ) pArea, pArea->ulRecCount ) != HB_SUCCESS )
return HB_FAILURE;
@@ -296,13 +299,13 @@ static HB_ERRCODE sqlbaseGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
if( pArea->fPositioned )
{
pArea->ulRecNo = ulRecNo;
pArea->area.fBof = pArea->area.fEof = HB_FALSE;
pArea->ulRecNo = ulRecNo;
pArea->area.fBof = pArea->area.fEof = HB_FALSE;
}
else
{
pArea->ulRecNo = pArea->ulRecCount + 1;
pArea->area.fBof = pArea->area.fEof = HB_TRUE;
pArea->ulRecNo = pArea->ulRecCount + 1;
pArea->area.fBof = pArea->area.fEof = HB_TRUE;
}
pArea->area.fFound = HB_FALSE;
@@ -331,8 +334,8 @@ static HB_ERRCODE sqlbaseGoToId( SQLBASEAREAP pArea, PHB_ITEM pItem )
static HB_ERRCODE sqlbaseGoTop( SQLBASEAREAP pArea )
{
pArea->area.fTop = HB_TRUE;
pArea->area.fBottom = HB_FALSE;
pArea->area.fTop = HB_TRUE;
pArea->area.fBottom = HB_FALSE;
if( SELF_GOTO( ( AREAP ) pArea, 1 ) == HB_FAILURE )
return HB_FAILURE;
@@ -362,8 +365,8 @@ static HB_ERRCODE sqlbaseSkip( SQLBASEAREAP pArea, HB_LONG lToSkip )
/* Move first record and set Bof flag */
if( errCode == HB_SUCCESS && pArea->area.fBof && lToSkip < 0 )
{
errCode = SELF_GOTOP( ( AREAP ) pArea );
pArea->area.fBof = HB_TRUE;
errCode = SELF_GOTOP( ( AREAP ) pArea );
pArea->area.fBof = HB_TRUE;
}
if( lToSkip < 0 )
@@ -391,19 +394,19 @@ static HB_ERRCODE sqlbaseSkipRaw( SQLBASEAREAP pArea, HB_LONG lToSkip )
HB_BOOL bBof, bEof;
/* Save flags */
bBof = pArea->area.fBof;
bEof = pArea->area.fEof;
bBof = pArea->area.fBof;
bEof = pArea->area.fEof;
errCode = SELF_GOTO( ( AREAP ) pArea, pArea->ulRecNo );
errCode = SELF_GOTO( ( AREAP ) pArea, pArea->ulRecNo );
/* Restore flags */
pArea->area.fBof = bBof;
pArea->area.fEof = bEof;
pArea->area.fBof = bBof;
pArea->area.fEof = bEof;
}
else if( lToSkip < 0 && ( HB_ULONG ) ( -lToSkip ) >= pArea->ulRecNo )
{
errCode = SELF_GOTO( ( AREAP ) pArea, 1 );
pArea->area.fBof = HB_TRUE;
errCode = SELF_GOTO( ( AREAP ) pArea, 1 );
pArea->area.fBof = HB_TRUE;
}
else
{
@@ -427,15 +430,15 @@ static HB_ERRCODE sqlbaseAppend( SQLBASEAREAP pArea, HB_BOOL bUnLockAll )
if( pArea->ulRecCount + 1 >= pArea->ulRecMax )
{
pArea->pRow = ( void ** ) hb_xrealloc( pArea->pRow, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xrealloc( pArea->pRowFlags, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( HB_BYTE ) );
pArea->ulRecMax += SQLDD_ROWSET_RESIZE;
pArea->pRow = ( void ** ) hb_xrealloc( pArea->pRow, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xrealloc( pArea->pRowFlags, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( HB_BYTE ) );
pArea->ulRecMax += SQLDD_ROWSET_RESIZE;
}
pArea->fAppend = pArea->fPositioned = HB_TRUE;
pArea->fAppend = pArea->fPositioned = HB_TRUE;
pArea->ulRecCount++;
pArea->ulRecNo = pArea->ulRecCount;
pArea->area.fBof = pArea->area.fEof = pArea->area.fFound = HB_FALSE;
pArea->ulRecNo = pArea->ulRecCount;
pArea->area.fBof = pArea->area.fEof = pArea->area.fFound = HB_FALSE;
return HB_SUCCESS;
}
@@ -496,10 +499,10 @@ static HB_ERRCODE sqlbaseGoCold( SQLBASEAREAP pArea )
{
hb_itemRelease( ( PHB_ITEM ) ( pArea->pRow[ pArea->ulRecNo ] ) );
}
pArea->pRow[ pArea->ulRecNo ] = pArea->pRecord;
pArea->pRowFlags[ pArea->ulRecNo ] = pArea->bRecordFlags;
pArea->fRecordChanged = HB_FALSE;
pArea->fAppend = HB_FALSE;
pArea->pRow[ pArea->ulRecNo ] = pArea->pRecord;
pArea->pRowFlags[ pArea->ulRecNo ] = pArea->bRecordFlags;
pArea->fRecordChanged = HB_FALSE;
pArea->fAppend = HB_FALSE;
}
return HB_SUCCESS;
}
@@ -507,8 +510,8 @@ static HB_ERRCODE sqlbaseGoCold( SQLBASEAREAP pArea )
static HB_ERRCODE sqlbaseGoHot( SQLBASEAREAP pArea )
{
PHB_ITEM pArray, pItem;
HB_USHORT us;
PHB_ITEM pArray, pItem;
HB_USHORT us;
pArray = hb_itemArrayNew( pArea->area.uiFieldCount );
for( us = 1; us <= pArea->area.uiFieldCount; us++ )
@@ -518,17 +521,17 @@ static HB_ERRCODE sqlbaseGoHot( SQLBASEAREAP pArea )
hb_arraySetForward( pArray, us, pItem );
hb_itemRelease( pItem );
}
pArea->pRecord = pArray;
pArea->bRecordFlags |= SQLDD_FLAG_CACHED;
pArea->fRecordChanged = HB_TRUE;
pArea->pRecord = pArray;
pArea->bRecordFlags |= SQLDD_FLAG_CACHED;
pArea->fRecordChanged = HB_TRUE;
return HB_SUCCESS;
}
static HB_ERRCODE sqlbasePutValue( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem )
{
LPFIELD pField;
HB_ERRCODE errCode;
LPFIELD pField;
HB_ERRCODE errCode;
if( uiIndex == 0 || uiIndex > pArea->area.uiFieldCount )
return HB_FAILURE;
@@ -539,8 +542,8 @@ static HB_ERRCODE sqlbasePutValue( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_IT
if( ! pArea->fRecordChanged && SELF_GOHOT( ( AREAP ) pArea ) == HB_FAILURE )
return HB_FAILURE;
errCode = HB_SUCCESS;
pField = pArea->area.lpFields + ( uiIndex - 1 );
errCode = HB_SUCCESS;
pField = pArea->area.lpFields + ( uiIndex - 1 );
if( ( ( HB_IS_MEMO( pItem ) || HB_IS_STRING( pItem ) ) && ( pField->uiType == HB_FT_STRING || pField->uiType == HB_FT_MEMO ) ) ||
( HB_IS_DATE( pItem ) && pField->uiType == HB_FT_DATE ) ||
@@ -599,8 +602,8 @@ static HB_ERRCODE sqlbaseRecNo( SQLBASEAREAP pArea, HB_ULONG * ulRecNo )
static HB_ERRCODE sqlbaseRecId( SQLBASEAREAP pArea, PHB_ITEM pRecNo )
{
HB_ERRCODE errCode;
HB_ULONG ulRecNo;
HB_ERRCODE errCode;
HB_ULONG ulRecNo;
errCode = SELF_RECNO( ( AREAP ) pArea, &ulRecNo );
hb_itemPutNInt( pRecNo, ulRecNo );
@@ -632,8 +635,8 @@ static HB_ERRCODE sqlbaseClose( SQLBASEAREAP pArea )
}
hb_xfree( pArea->pRow );
hb_xfree( pArea->pRowFlags );
pArea->pRow = NULL;
pArea->pRowFlags = NULL;
pArea->pRow = NULL;
pArea->pRowFlags = NULL;
}
if( pArea->szQuery )
@@ -653,9 +656,9 @@ static HB_ERRCODE sqlbaseClose( SQLBASEAREAP pArea )
static HB_ERRCODE sqlbaseCreate( SQLBASEAREAP pArea, LPDBOPENINFO pOpenInfo )
{
PHB_ITEM pItemEof, pItem;
HB_USHORT uiCount;
HB_BOOL bError;
PHB_ITEM pItemEof, pItem;
HB_USHORT uiCount;
HB_BOOL bError;
pArea->ulConnection = pOpenInfo->ulConnection ? pOpenInfo->ulConnection : s_ulConnectionCurrent;
@@ -668,9 +671,9 @@ static HB_ERRCODE sqlbaseCreate( SQLBASEAREAP pArea, LPDBOPENINFO pOpenInfo )
if( pArea->ulConnection )
{
pArea->pConnection = s_pConnection[ pArea->ulConnection - 1 ];
pArea->pConnection = s_pConnection[ pArea->ulConnection - 1 ];
pArea->pConnection->uiAreaCount++;
pArea->pSDD = pArea->pConnection->pSDD;
pArea->pSDD = pArea->pConnection->pSDD;
}
else
{
@@ -679,7 +682,7 @@ static HB_ERRCODE sqlbaseCreate( SQLBASEAREAP pArea, LPDBOPENINFO pOpenInfo )
pItemEof = hb_itemArrayNew( pArea->area.uiFieldCount );
bError = HB_FALSE;
bError = HB_FALSE;
for( uiCount = 0; uiCount < pArea->area.uiFieldCount; uiCount++ )
{
LPFIELD pField = pArea->area.lpFields + uiCount;
@@ -690,11 +693,11 @@ static HB_ERRCODE sqlbaseCreate( SQLBASEAREAP pArea, LPDBOPENINFO pOpenInfo )
{
char * pStr;
pStr = ( char * ) hb_xgrab( pField->uiLen + 1 );
pStr = ( char * ) hb_xgrab( pField->uiLen + 1 );
memset( pStr, ' ', pField->uiLen );
pStr[ pField->uiLen ] = '\0';
pStr[ pField->uiLen ] = '\0';
pItem = hb_itemPutCL( NULL, pStr, pField->uiLen );
pItem = hb_itemPutCL( NULL, pStr, pField->uiLen );
hb_xfree( pStr );
break;
}
@@ -734,8 +737,8 @@ static HB_ERRCODE sqlbaseCreate( SQLBASEAREAP pArea, LPDBOPENINFO pOpenInfo )
break;
default:
pItem = hb_itemNew( NULL );
bError = HB_TRUE;
pItem = hb_itemNew( NULL );
bError = HB_TRUE;
break;
}
@@ -755,15 +758,15 @@ static HB_ERRCODE sqlbaseCreate( SQLBASEAREAP pArea, LPDBOPENINFO pOpenInfo )
return HB_FAILURE;
}
pArea->ulRecCount = 0;
pArea->ulRecCount = 0;
pArea->pRow = ( void ** ) hb_xalloc( SQLDD_ROWSET_RESIZE * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xalloc( SQLDD_ROWSET_RESIZE * sizeof( HB_BYTE ) );
pArea->ulRecMax = SQLDD_ROWSET_RESIZE;
pArea->pRow = ( void ** ) hb_xalloc( SQLDD_ROWSET_RESIZE * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xalloc( SQLDD_ROWSET_RESIZE * sizeof( HB_BYTE ) );
pArea->ulRecMax = SQLDD_ROWSET_RESIZE;
*( pArea->pRow ) = pItemEof;
pArea->pRowFlags[ 0 ] = SQLDD_FLAG_CACHED;
pArea->fFetched = HB_TRUE;
*( pArea->pRow ) = pItemEof;
pArea->pRowFlags[ 0 ] = SQLDD_FLAG_CACHED;
pArea->fFetched = HB_TRUE;
if( SUPER_CREATE( ( AREAP ) pArea, pOpenInfo ) != HB_SUCCESS )
{
@@ -808,14 +811,14 @@ static HB_ERRCODE sqlbaseOpen( SQLBASEAREAP pArea, LPDBOPENINFO pOpenInfo )
/* This should not happen (in __dbTrans()), because RDD is registered with RDT_FULL */
return HB_FAILURE;
pArea->pConnection = s_pConnection[ pArea->ulConnection - 1 ];
pArea->pConnection = s_pConnection[ pArea->ulConnection - 1 ];
pArea->pConnection->uiAreaCount++;
pArea->pSDD = pArea->pConnection->pSDD;
pArea->pSDD = pArea->pConnection->pSDD;
/* filename is a query */
pArea->szQuery = hb_strdup( pOpenInfo->abName );
pArea->szQuery = hb_strdup( pOpenInfo->abName );
errCode = pArea->pSDD->Open( pArea );
errCode = pArea->pSDD->Open( pArea );
if( errCode == HB_SUCCESS )
{
@@ -882,8 +885,8 @@ static HB_ERRCODE sqlbaseForceRel( SQLBASEAREAP pArea )
{
LPDBRELINFO lpdbPendingRel;
lpdbPendingRel = pArea->lpdbPendingRel;
pArea->lpdbPendingRel = NULL;
lpdbPendingRel = pArea->lpdbPendingRel;
pArea->lpdbPendingRel = NULL;
return SELF_RELEVAL( ( AREAP ) pArea, lpdbPendingRel );
}
return HB_SUCCESS;
@@ -929,9 +932,9 @@ static HB_ERRCODE sqlbaseExit( LPRDDNODE pRDD )
}
}
hb_xfree( s_pConnection );
s_pConnection = NULL;
s_ulConnectionCount = 0;
s_ulConnectionCurrent = 0;
s_pConnection = NULL;
s_ulConnectionCount = 0;
s_ulConnectionCurrent = 0;
if( s_szError )
{
hb_xfree( s_szError );
@@ -952,7 +955,7 @@ static HB_ERRCODE sqlbaseExit( LPRDDNODE pRDD )
static HB_ERRCODE sqlbaseRddInfo( LPRDDNODE pRDD, HB_USHORT uiIndex, HB_ULONG ulConnect, PHB_ITEM pItem )
{
HB_ULONG ulConn;
HB_ULONG ulConn;
SQLDDCONNECTION * pConn;
HB_SYMBOL_UNUSED( pRDD );
@@ -997,9 +1000,9 @@ static HB_ERRCODE sqlbaseRddInfo( LPRDDNODE pRDD, HB_USHORT uiIndex, HB_ULONG ul
case RDDI_CONNECT:
{
PSDDNODE pNode = NULL;
HB_ULONG ul;
const char * pStr;
PSDDNODE pNode = NULL;
HB_ULONG ul;
const char * pStr;
pStr = hb_arrayGetCPtr( pItem, 1 );
if( pStr )
@@ -1035,12 +1038,12 @@ static HB_ERRCODE sqlbaseRddInfo( LPRDDNODE pRDD, HB_USHORT uiIndex, HB_ULONG ul
s_pConnection = ( SQLDDCONNECTION ** ) hb_xgrab( sizeof( SQLDDCONNECTION * ) * CONNECTION_LIST_EXPAND );
memset( s_pConnection + s_ulConnectionCount, 0, sizeof( SQLDDCONNECTION * ) * CONNECTION_LIST_EXPAND );
ul = s_ulConnectionCount;
s_ulConnectionCount += CONNECTION_LIST_EXPAND;
ul = s_ulConnectionCount;
s_ulConnectionCount += CONNECTION_LIST_EXPAND;
}
s_pConnection[ ul ] = pConn;
s_pConnection[ ul ] = pConn;
ul++;
s_ulConnectionCurrent = ul;
s_ulConnectionCurrent = ul;
}
else
{
@@ -1112,106 +1115,106 @@ static HB_ERRCODE sqlbaseRddInfo( LPRDDNODE pRDD, HB_USHORT uiIndex, HB_ULONG ul
static RDDFUNCS sqlbaseTable =
{
( DBENTRYP_BP ) NULL, /* sqlbaseBof */
( DBENTRYP_BP ) NULL, /* sqlbaseEof */
( DBENTRYP_BP ) NULL, /* sqlbaseFound */
( DBENTRYP_BP ) NULL, /* sqlbaseBof */
( DBENTRYP_BP ) NULL, /* sqlbaseEof */
( DBENTRYP_BP ) NULL, /* sqlbaseFound */
( DBENTRYP_V ) sqlbaseGoBottom,
( DBENTRYP_UL ) sqlbaseGoTo,
( DBENTRYP_I ) sqlbaseGoToId,
( DBENTRYP_V ) sqlbaseGoTop,
( DBENTRYP_BIB ) NULL, /* sqlbaseSeek */
( DBENTRYP_BIB ) NULL, /* sqlbaseSeek */
( DBENTRYP_L ) sqlbaseSkip,
( DBENTRYP_L ) NULL, /* sqlbaseSkipFilter */
( DBENTRYP_L ) NULL, /* sqlbaseSkipFilter */
( DBENTRYP_L ) sqlbaseSkipRaw,
( DBENTRYP_VF ) NULL, /* sqlbaseAddField */
( DBENTRYP_VF ) NULL, /* sqlbaseAddField */
( DBENTRYP_B ) sqlbaseAppend,
( DBENTRYP_I ) NULL, /* sqlbaseCreateFields */
( DBENTRYP_I ) NULL, /* sqlbaseCreateFields */
( DBENTRYP_V ) sqlbaseDeleteRec,
( DBENTRYP_BP ) sqlbaseDeleted,
( DBENTRYP_SP ) NULL, /* sqlbaseFieldCount */
( DBENTRYP_VF ) NULL, /* sqlbaseFieldDisplay */
( DBENTRYP_SSI ) NULL, /* sqlbaseFieldInfo */
( DBENTRYP_SCP ) NULL, /* sqlbaseFieldName */
( DBENTRYP_V ) NULL, /* sqlbaseFlush */
( DBENTRYP_PP ) NULL, /* sqlbaseGetRec */
( DBENTRYP_SP ) NULL, /* sqlbaseFieldCount */
( DBENTRYP_VF ) NULL, /* sqlbaseFieldDisplay */
( DBENTRYP_SSI ) NULL, /* sqlbaseFieldInfo */
( DBENTRYP_SCP ) NULL, /* sqlbaseFieldName */
( DBENTRYP_V ) NULL, /* sqlbaseFlush */
( DBENTRYP_PP ) NULL, /* sqlbaseGetRec */
( DBENTRYP_SI ) sqlbaseGetValue,
( DBENTRYP_SVL ) sqlbaseGetVarLen,
( DBENTRYP_V ) sqlbaseGoCold,
( DBENTRYP_V ) sqlbaseGoHot,
( DBENTRYP_P ) NULL, /* sqlbasePutRec */
( DBENTRYP_P ) NULL, /* sqlbasePutRec */
( DBENTRYP_SI ) sqlbasePutValue,
( DBENTRYP_V ) sqlbaseRecall,
( DBENTRYP_ULP ) sqlbaseRecCount,
( DBENTRYP_ISI ) NULL, /* sqlbaseRecInfo */
( DBENTRYP_ISI ) NULL, /* sqlbaseRecInfo */
( DBENTRYP_ULP ) sqlbaseRecNo,
( DBENTRYP_I ) sqlbaseRecId,
( DBENTRYP_S ) NULL, /* sqlbaseSetFieldExtent */
( DBENTRYP_CP ) NULL, /* sqlbaseAlias */
( DBENTRYP_S ) NULL, /* sqlbaseSetFieldExtent */
( DBENTRYP_CP ) NULL, /* sqlbaseAlias */
( DBENTRYP_V ) sqlbaseClose,
( DBENTRYP_VO ) sqlbaseCreate,
( DBENTRYP_SI ) sqlbaseInfo,
( DBENTRYP_V ) NULL, /* sqlbaseNewArea */
( DBENTRYP_V ) NULL, /* sqlbaseNewArea */
( DBENTRYP_VO ) sqlbaseOpen,
( DBENTRYP_V ) NULL, /* sqlbaseRelease */
( DBENTRYP_V ) NULL, /* sqlbaseRelease */
( DBENTRYP_SP ) sqlbaseStructSize,
( DBENTRYP_CP ) NULL, /* sqlbaseSysName */
( DBENTRYP_VEI ) NULL, /* sqlbaseEval */
( DBENTRYP_V ) NULL, /* sqlbasePack */
( DBENTRYP_LSP ) NULL, /* sqlbasePackRec */
( DBENTRYP_VS ) NULL, /* sqlbaseSort */
( DBENTRYP_VT ) NULL, /* sqlbaseTrans */
( DBENTRYP_VT ) NULL, /* sqlbaseTransRec */
( DBENTRYP_V ) NULL, /* sqlbaseZap */
( DBENTRYP_VR ) NULL, /* sqlbaseChildEnd */
( DBENTRYP_VR ) NULL, /* sqlbaseChildStart */
( DBENTRYP_VR ) NULL, /* sqlbaseChildSync */
( DBENTRYP_V ) NULL, /* sqlbaseSyncChildren */
( DBENTRYP_V ) NULL, /* sqlbaseClearRel */
( DBENTRYP_V ) NULL, /* sqlbaseForceRel */
( DBENTRYP_SSP ) NULL, /* sqlbaseRelArea */
( DBENTRYP_VR ) NULL, /* sqlbaseRelEval */
( DBENTRYP_SI ) NULL, /* sqlbaseRelText */
( DBENTRYP_VR ) NULL, /* sqlbaseSetRel */
( DBENTRYP_VOI ) NULL, /* sqlbaseOrderListAdd */
( DBENTRYP_V ) NULL, /* sqlbaseOrderListClear */
( DBENTRYP_VOI ) NULL, /* sqlbaseOrderListDelete */
( DBENTRYP_VOI ) NULL, /* sqlbaseOrderListFocus */
( DBENTRYP_V ) NULL, /* sqlbaseOrderListRebuild */
( DBENTRYP_VOO ) NULL, /* sqlbaseOrderCondition */
( DBENTRYP_VOC ) NULL, /* sqlbaseOrderCreate */
( DBENTRYP_VOI ) NULL, /* sqlbaseOrderDestroy */
( DBENTRYP_SVOI ) NULL, /* sqlbaseOrderInfo */
( DBENTRYP_V ) NULL, /* sqlbaseClearFilter */
( DBENTRYP_V ) NULL, /* sqlbaseClearLocate */
( DBENTRYP_V ) NULL, /* sqlbaseClearScope */
( DBENTRYP_VPLP ) NULL, /* sqlbaseCountScope */
( DBENTRYP_I ) NULL, /* sqlbaseFilterText */
( DBENTRYP_SI ) NULL, /* sqlbaseScopeInfo */
( DBENTRYP_VFI ) NULL, /* sqlbaseSetFilter */
( DBENTRYP_VLO ) NULL, /* sqlbaseSetLocate */
( DBENTRYP_VOS ) NULL, /* sqlbaseSetScope */
( DBENTRYP_VPL ) NULL, /* sqlbaseSkipScope */
( DBENTRYP_B ) NULL, /* sqlbaseLocate */
( DBENTRYP_CC ) NULL, /* sqlbaseCompile */
( DBENTRYP_I ) NULL, /* sqlbaseError */
( DBENTRYP_I ) NULL, /* sqlbaseEvalBlock */
( DBENTRYP_VSP ) NULL, /* sqlbaseRawLock */
( DBENTRYP_VL ) NULL, /* sqlbaseLock */
( DBENTRYP_I ) NULL, /* sqlbaseUnLock */
( DBENTRYP_V ) NULL, /* sqlbaseCloseMemFile */
( DBENTRYP_VO ) NULL, /* sqlbaseCreateMemFile */
( DBENTRYP_SCCS ) NULL, /* sqlbaseGetValueFile */
( DBENTRYP_VO ) NULL, /* sqlbaseOpenMemFile */
( DBENTRYP_SCCS ) NULL, /* sqlbasePutValueFile */
( DBENTRYP_V ) NULL, /* sqlbaseReadDBHeader */
( DBENTRYP_V ) NULL, /* sqlbaseWriteDBHeader */
( DBENTRYP_CP ) NULL, /* sqlbaseSysName */
( DBENTRYP_VEI ) NULL, /* sqlbaseEval */
( DBENTRYP_V ) NULL, /* sqlbasePack */
( DBENTRYP_LSP ) NULL, /* sqlbasePackRec */
( DBENTRYP_VS ) NULL, /* sqlbaseSort */
( DBENTRYP_VT ) NULL, /* sqlbaseTrans */
( DBENTRYP_VT ) NULL, /* sqlbaseTransRec */
( DBENTRYP_V ) NULL, /* sqlbaseZap */
( DBENTRYP_VR ) NULL, /* sqlbaseChildEnd */
( DBENTRYP_VR ) NULL, /* sqlbaseChildStart */
( DBENTRYP_VR ) NULL, /* sqlbaseChildSync */
( DBENTRYP_V ) NULL, /* sqlbaseSyncChildren */
( DBENTRYP_V ) NULL, /* sqlbaseClearRel */
( DBENTRYP_V ) NULL, /* sqlbaseForceRel */
( DBENTRYP_SSP ) NULL, /* sqlbaseRelArea */
( DBENTRYP_VR ) NULL, /* sqlbaseRelEval */
( DBENTRYP_SI ) NULL, /* sqlbaseRelText */
( DBENTRYP_VR ) NULL, /* sqlbaseSetRel */
( DBENTRYP_VOI ) NULL, /* sqlbaseOrderListAdd */
( DBENTRYP_V ) NULL, /* sqlbaseOrderListClear */
( DBENTRYP_VOI ) NULL, /* sqlbaseOrderListDelete */
( DBENTRYP_VOI ) NULL, /* sqlbaseOrderListFocus */
( DBENTRYP_V ) NULL, /* sqlbaseOrderListRebuild */
( DBENTRYP_VOO ) NULL, /* sqlbaseOrderCondition */
( DBENTRYP_VOC ) NULL, /* sqlbaseOrderCreate */
( DBENTRYP_VOI ) NULL, /* sqlbaseOrderDestroy */
( DBENTRYP_SVOI ) NULL, /* sqlbaseOrderInfo */
( DBENTRYP_V ) NULL, /* sqlbaseClearFilter */
( DBENTRYP_V ) NULL, /* sqlbaseClearLocate */
( DBENTRYP_V ) NULL, /* sqlbaseClearScope */
( DBENTRYP_VPLP ) NULL, /* sqlbaseCountScope */
( DBENTRYP_I ) NULL, /* sqlbaseFilterText */
( DBENTRYP_SI ) NULL, /* sqlbaseScopeInfo */
( DBENTRYP_VFI ) NULL, /* sqlbaseSetFilter */
( DBENTRYP_VLO ) NULL, /* sqlbaseSetLocate */
( DBENTRYP_VOS ) NULL, /* sqlbaseSetScope */
( DBENTRYP_VPL ) NULL, /* sqlbaseSkipScope */
( DBENTRYP_B ) NULL, /* sqlbaseLocate */
( DBENTRYP_CC ) NULL, /* sqlbaseCompile */
( DBENTRYP_I ) NULL, /* sqlbaseError */
( DBENTRYP_I ) NULL, /* sqlbaseEvalBlock */
( DBENTRYP_VSP ) NULL, /* sqlbaseRawLock */
( DBENTRYP_VL ) NULL, /* sqlbaseLock */
( DBENTRYP_I ) NULL, /* sqlbaseUnLock */
( DBENTRYP_V ) NULL, /* sqlbaseCloseMemFile */
( DBENTRYP_VO ) NULL, /* sqlbaseCreateMemFile */
( DBENTRYP_SCCS ) NULL, /* sqlbaseGetValueFile */
( DBENTRYP_VO ) NULL, /* sqlbaseOpenMemFile */
( DBENTRYP_SCCS ) NULL, /* sqlbasePutValueFile */
( DBENTRYP_V ) NULL, /* sqlbaseReadDBHeader */
( DBENTRYP_V ) NULL, /* sqlbaseWriteDBHeader */
( DBENTRYP_R ) sqlbaseInit,
( DBENTRYP_R ) sqlbaseExit,
( DBENTRYP_RVVL ) NULL, /* sqlbaseDrop */
( DBENTRYP_RVVL ) NULL, /* sqlbaseExists */
( DBENTRYP_RVVVL ) NULL, /* sqlbaseRename */
( DBENTRYP_RVVL ) NULL, /* sqlbaseDrop */
( DBENTRYP_RVVL ) NULL, /* sqlbaseExists */
( DBENTRYP_RVVVL ) NULL, /* sqlbaseRename */
( DBENTRYP_RSLV ) sqlbaseRddInfo,
( DBENTRYP_SVP ) NULL /* sqlbaseWhoCares */
( DBENTRYP_SVP ) NULL /* sqlbaseWhoCares */
};
@@ -1274,7 +1277,7 @@ HB_CALL_ON_STARTUP_END( _hb_sqlbase_init_ )
#pragma startup sqlbase__InitSymbols
#pragma startup _hb_sqlbase_init_
#elif defined( HB_DATASEG_STARTUP )
#define HB_DATASEG_BODY HB_DATASEG_FUNC( sqlbase__InitSymbols ) \
#define HB_DATASEG_BODY HB_DATASEG_FUNC( sqlbase__InitSymbols ) \
HB_DATASEG_FUNC( _hb_sqlbase_init_ )
#include "hbiniseg.h"
#endif

View File

@@ -63,7 +63,7 @@
#include "hbrddsql.h"
#define SUPERTABLE ( &sqlmixSuper )
#define SUPERTABLE ( &sqlmixSuper )
@@ -92,9 +92,9 @@
static HB_USHORT s_uiRddIdSQLMIX = ( HB_USHORT ) -1;
static HB_USHORT s_uiRddIdSQLMIX = ( HB_USHORT ) -1;
static RDDFUNCS sqlmixSuper;
static RDDFUNCS sqlmixSuper;
/*
@@ -106,8 +106,8 @@ static RDDFUNCS sqlmixSuper;
static HB_ERRCODE sqlmixErrorRT( SQLMIXAREAP pArea, HB_ERRCODE errGenCode, HB_ERRCODE errSubCode, char * filename, HB_ERRCODE errOsCode, HB_USHORT uiFlags )
{
PHB_ITEM pError;
HB_ERRCODE iRet = HB_FAILURE;
PHB_ITEM pError;
HB_ERRCODE iRet = HB_FAILURE;
if( hb_vmRequestQuery() == 0 )
{
@@ -144,14 +144,14 @@ static PMIXKEY hb_mixKeyNew( PMIXTAG pTag )
static PMIXKEY hb_mixKeyPutItem( PMIXKEY pKey, PHB_ITEM pItem, HB_ULONG ulRecNo, PMIXTAG pTag )
{
double dbl;
HB_BYTE buf[ 8 ];
double dbl;
HB_BYTE buf[ 8 ];
if( ! pKey )
pKey = hb_mixKeyNew( pTag );
pKey->rec = ulRecNo;
pKey->notnul = 1;
pKey->rec = ulRecNo;
pKey->notnul = 1;
/* TODO: check valtype */
switch( pTag->bType )
@@ -196,10 +196,10 @@ static PMIXKEY hb_mixKeyPutItem( PMIXKEY pKey, PHB_ITEM pItem, HB_ULONG ulRecNo,
static PMIXKEY hb_mixKeyEval( PMIXKEY pKey, PMIXTAG pTag )
{
PHB_ITEM pItem;
SQLMIXAREAP pArea = pTag->pArea;
int iCurrArea = hb_rddGetCurrentWorkAreaNumber();
PHB_CODEPAGE pCodepage = hb_cdpSelect( pArea->sqlarea.area.cdPage );
PHB_ITEM pItem;
SQLMIXAREAP pArea = pTag->pArea;
int iCurrArea = hb_rddGetCurrentWorkAreaNumber();
PHB_CODEPAGE pCodepage = hb_cdpSelect( pArea->sqlarea.area.cdPage );
if( iCurrArea != pArea->sqlarea.area.uiArea )
hb_rddSelectWorkAreaNumber( pArea->sqlarea.area.uiArea );
@@ -208,7 +208,7 @@ static PMIXKEY hb_mixKeyEval( PMIXKEY pKey, PMIXTAG pTag )
pItem = hb_vmEvalBlockOrMacro( pTag->pKeyItem );
pKey = hb_mixKeyPutItem( pKey, pItem, pArea->sqlarea.ulRecNo, pTag );
pKey = hb_mixKeyPutItem( pKey, pItem, pArea->sqlarea.ulRecNo, pTag );
if( iCurrArea )
hb_rddSelectWorkAreaNumber( iCurrArea );
@@ -221,8 +221,8 @@ static PMIXKEY hb_mixKeyEval( PMIXKEY pKey, PMIXTAG pTag )
static HB_BOOL hb_mixEvalCond( SQLMIXAREAP pArea, PHB_ITEM pCondItem )
{
int iCurrArea = 0;
HB_BOOL fRet;
int iCurrArea = 0;
HB_BOOL fRet;
if( pArea )
{
@@ -251,16 +251,16 @@ static void hb_mixKeyFree( PMIXKEY pKey )
static int hb_mixKeyCompare( PMIXTAG pTag, PMIXKEY pKey1, PMIXKEY pKey2, unsigned int uiLen )
{
unsigned int uiSize;
int i;
unsigned int uiSize;
int i;
if( ! pKey1->notnul || ! pKey2->notnul )
{
return ( int ) pKey1->notnul - ( int ) pKey2->notnul;
}
i = 0;
uiSize = pTag->uiKeyLen > uiLen ? uiLen : pTag->uiKeyLen;
i = 0;
uiSize = pTag->uiKeyLen > uiLen ? uiLen : pTag->uiKeyLen;
if( pTag->pCodepage )
{
@@ -356,9 +356,9 @@ static PMIXNODE hb_mixTagCreateNode( PMIXTAG pTag, HB_BOOL fLeaf )
PMIXNODE pNode;
HB_SIZE ulSize;
ulSize = ( fLeaf ? sizeof( MIXNODELEAF ) : sizeof( MIXNODE ) ) + MIX_NODE_ORDER * pTag->uiTotalLen;
ulSize = ( fLeaf ? sizeof( MIXNODELEAF ) : sizeof( MIXNODE ) ) + MIX_NODE_ORDER * pTag->uiTotalLen;
pNode = ( PMIXNODE ) hb_xgrab( ulSize );
pNode = ( PMIXNODE ) hb_xgrab( ulSize );
memset( pNode, 0, ulSize );
pNode->Leaf = fLeaf ? 1 : 0;
return pNode;
@@ -367,8 +367,8 @@ static PMIXNODE hb_mixTagCreateNode( PMIXTAG pTag, HB_BOOL fLeaf )
static unsigned int hb_mixTagNodeParentIndex( PMIXNODE pNode )
{
PMIXNODE pParent = pNode->Parent;
unsigned int ui;
PMIXNODE pParent = pNode->Parent;
unsigned int ui;
/* Find position in the parent node */
ui = pParent->KeyCount;
@@ -385,9 +385,9 @@ static unsigned int hb_mixTagNodeParentIndex( PMIXNODE pNode )
static int hb_mixTagFindKey( PMIXTAG pTag, PMIXKEY pKey, unsigned int uiLen, PMIXNODE * ppNode, unsigned int * puiPos, HB_BOOL fValidKey )
{
PMIXNODE pNode;
unsigned int ui;
int i;
PMIXNODE pNode;
unsigned int ui;
int i;
pNode = pTag->Root;
@@ -436,8 +436,8 @@ static int hb_mixTagFindKey( PMIXTAG pTag, PMIXKEY pKey, unsigned int uiLen, PMI
}
}
*ppNode = pNode;
*puiPos = ui;
*ppNode = pNode;
*puiPos = ui;
return i;
}
@@ -446,10 +446,10 @@ static void hb_mixTagSetCurrent( PMIXTAG pTag, PMIXNODE pNode, unsigned int uiPo
{
if( uiPos < pNode->KeyCount )
{
pTag->CurNode = pNode;
pTag->CurPos = uiPos;
pTag->CurKey = MIX_KEY( pTag, pNode, uiPos );
pTag->fEof = HB_FALSE;
pTag->CurNode = pNode;
pTag->CurPos = uiPos;
pTag->CurKey = MIX_KEY( pTag, pNode, uiPos );
pTag->fEof = HB_FALSE;
}
else
{
@@ -474,9 +474,9 @@ static HB_BOOL hb_mixTagRefreshKey( PMIXTAG pTag )
}
else if( pTag->fEof || pTag->CurKey->rec != pArea->sqlarea.ulRecNo )
{
PMIXKEY pKey;
PMIXNODE pNode;
unsigned int ui;
PMIXKEY pKey;
PMIXNODE pNode;
unsigned int ui;
pKey = hb_mixKeyEval( NULL, pTag );
@@ -497,10 +497,10 @@ static void hb_mixTagAddKeyNode( PMIXTAG pTag, PMIXNODE pNode, unsigned int uiPo
if( ! pNode->Leaf )
{
MIX_COPY_CHILDS_INTERNAL( pTag, pNode, uiPos + 2, uiPos + 1, pNode->KeyCount - uiPos );
pNode->Child[ uiPos ] = pChildLeft;
pNode->Child[ uiPos + 1 ] = pChildRight;
pChildLeft->Parent = pNode;
pChildRight->Parent = pNode;
pNode->Child[ uiPos ] = pChildLeft;
pNode->Child[ uiPos + 1 ] = pChildRight;
pChildLeft->Parent = pNode;
pChildRight->Parent = pNode;
}
MIX_ASSIGN_KEY( pTag, pNode, uiPos, pKey );
pNode->KeyCount++;
@@ -509,8 +509,8 @@ static void hb_mixTagAddKeyNode( PMIXTAG pTag, PMIXNODE pNode, unsigned int uiPo
static void hb_mixTagAddKeyPos( PMIXTAG pTag, PMIXNODE pNode, unsigned int uiPos, PMIXKEY pKey, PMIXNODE pChildLeft, PMIXNODE pChildRight )
{
PMIXNODE pNewNode;
unsigned int j, k;
PMIXNODE pNewNode;
unsigned int j, k;
if( pNode->KeyCount < MIX_NODE_ORDER )
{
@@ -571,7 +571,7 @@ static void hb_mixTagAddKeyPos( PMIXTAG pTag, PMIXNODE pNode, unsigned int uiPos
pNewNode = hb_mixTagCreateNode( pTag, pNode->Leaf );
/* Move half of items to new node */
k = MIX_NODE_ORDER / 2 + ( ( uiPos <= MIX_NODE_ORDER / 2 ) ? 0 : 1 );
k = MIX_NODE_ORDER / 2 + ( ( uiPos <= MIX_NODE_ORDER / 2 ) ? 0 : 1 );
MIX_COPY_KEYS_EXTERNAL( pTag, pNewNode, 0, pNode, k, MIX_NODE_ORDER - k );
if( ! pNode->Leaf )
{
@@ -581,8 +581,8 @@ static void hb_mixTagAddKeyPos( PMIXTAG pTag, PMIXNODE pNode, unsigned int uiPos
pNewNode->Child[ j ]->Parent = pNewNode; /* Do NOT forget to re-parent */
}
}
pNode->KeyCount = k;
pNewNode->KeyCount = MIX_NODE_ORDER - k;
pNode->KeyCount = k;
pNewNode->KeyCount = MIX_NODE_ORDER - k;
/* Insert new item to the left node or right node */
@@ -595,8 +595,8 @@ static void hb_mixTagAddKeyPos( PMIXTAG pTag, PMIXNODE pNode, unsigned int uiPos
/* Assign the leftmost child of the new node */
if( ! pNode->Leaf )
{
pNewNode->Child[ 0 ] = pNode->Child[ pNode->KeyCount ];
pNewNode->Child[ 0 ]->Parent = pNewNode;
pNewNode->Child[ 0 ] = pNode->Child[ pNode->KeyCount ];
pNewNode->Child[ 0 ]->Parent = pNewNode;
}
pNode->KeyCount--;
@@ -618,9 +618,9 @@ static void hb_mixTagAddKeyPos( PMIXTAG pTag, PMIXNODE pNode, unsigned int uiPos
static HB_BOOL hb_mixTagAddKey( PMIXTAG pTag, PMIXKEY pKey )
{
PMIXNODE pNode;
unsigned int ui;
int i;
PMIXNODE pNode;
unsigned int ui;
int i;
i = hb_mixTagFindKey( pTag, pKey, pTag->uiKeyLen, &pNode, &ui, HB_FALSE );
@@ -646,8 +646,8 @@ static void hb_mixTagDelKeyNode( PMIXTAG pTag, PMIXNODE pNode, unsigned int uiPo
static void hb_mixTagNodeAdjust( PMIXTAG pTag, PMIXNODE pNode )
{
unsigned int i, j;
PMIXNODE pParent, pSibling;
unsigned int i, j;
PMIXNODE pParent, pSibling;
while( 1 )
@@ -659,8 +659,8 @@ static void hb_mixTagNodeAdjust( PMIXTAG pTag, PMIXNODE pNode )
if( pNode->Parent )
{
pParent = pNode->Parent;
j = hb_mixTagNodeParentIndex( pNode );
pParent = pNode->Parent;
j = hb_mixTagNodeParentIndex( pNode );
if( j > 0 && pParent->Child[ j - 1 ]->KeyCount > MIX_NODE_ORDER / 2 )
{
@@ -704,13 +704,13 @@ static void hb_mixTagNodeAdjust( PMIXTAG pTag, PMIXNODE pNode )
{
pSibling->Child[ pSibling->KeyCount++ ]->Parent = pSibling;
}
pSibling->Child[ pSibling->KeyCount ] = pNode->Child[ i ];
pSibling->Child[ pSibling->KeyCount ]->Parent = pSibling;
pSibling->Child[ pSibling->KeyCount ] = pNode->Child[ i ];
pSibling->Child[ pSibling->KeyCount ]->Parent = pSibling;
}
hb_xfree( pNode );
pParent->Child[ j ] = pSibling;
pParent->Child[ j ] = pSibling;
hb_mixTagDelKeyNode( pTag, pParent, j - 1 );
pNode = pParent;
pNode = pParent;
}
else if( j < pParent->KeyCount )
{
@@ -731,13 +731,13 @@ static void hb_mixTagNodeAdjust( PMIXTAG pTag, PMIXNODE pNode )
{
pNode->Child[ pNode->KeyCount++ ]->Parent = pNode;
}
pNode->Child[ pNode->KeyCount ] = pSibling->Child[ i ];
pNode->Child[ pNode->KeyCount ]->Parent = pNode;
pNode->Child[ pNode->KeyCount ] = pSibling->Child[ i ];
pNode->Child[ pNode->KeyCount ]->Parent = pNode;
}
hb_xfree( pSibling );
pParent->Child[ j + 1 ] = pNode;
hb_mixTagDelKeyNode( pTag, pParent, j );
pNode = pParent;
pNode = pParent;
}
}
else
@@ -746,8 +746,8 @@ static void hb_mixTagNodeAdjust( PMIXTAG pTag, PMIXNODE pNode )
if( ! pNode->KeyCount && ! pNode->Leaf )
{
pTag->Root = pNode->Child[ 0 ];
pTag->Root->Parent = NULL;
pTag->Root = pNode->Child[ 0 ];
pTag->Root->Parent = NULL;
hb_xfree( pNode );
}
return;
@@ -781,9 +781,9 @@ static void hb_mixTagDelKeyPos( PMIXTAG pTag, PMIXNODE pNode, unsigned int uiPos
static HB_BOOL hb_mixTagDelKey( PMIXTAG pTag, PMIXKEY pKey )
{
PMIXNODE pNode;
unsigned int ui;
int i;
PMIXNODE pNode;
unsigned int ui;
int i;
i = hb_mixTagFindKey( pTag, pKey, pTag->uiKeyLen, &pNode, &ui, HB_FALSE );
@@ -797,33 +797,33 @@ static HB_BOOL hb_mixTagDelKey( PMIXTAG pTag, PMIXKEY pKey )
static PMIXTAG hb_mixTagCreate( const char * szTagName, PHB_ITEM pKeyExpr, PHB_ITEM pKeyItem, PHB_ITEM pForItem, PHB_ITEM pWhileItem, HB_BYTE bType, unsigned int uiKeyLen, SQLMIXAREAP pArea )
{
PMIXTAG pTag;
PMIXKEY pKey = NULL;
LPDBORDERCONDINFO pOrdCondInfo = pArea->sqlarea.area.lpdbOrdCondInfo;
PMIXTAG pTag;
PMIXKEY pKey = NULL;
LPDBORDERCONDINFO pOrdCondInfo = pArea->sqlarea.area.lpdbOrdCondInfo;
HB_ULONG ulStartRec, ulNextCount = 0;
HB_LONG lStep = 0;
PHB_ITEM pItem, pEvalItem = NULL;
HB_LONG lStep = 0;
PHB_ITEM pItem, pEvalItem = NULL;
pTag = ( PMIXTAG ) hb_xgrab( sizeof( MIXTAG ) );
pTag = ( PMIXTAG ) hb_xgrab( sizeof( MIXTAG ) );
memset( pTag, 0, sizeof( MIXTAG ) );
pTag->pArea = pArea;
pTag->pArea = pArea;
pTag->szName = ( char * ) hb_xgrab( MIX_MAXTAGNAMELEN + 1 );
pTag->szName = ( char * ) hb_xgrab( MIX_MAXTAGNAMELEN + 1 );
hb_strncpyUpperTrim( pTag->szName, szTagName, MIX_MAXTAGNAMELEN );
pTag->szKeyExpr = ( char * ) hb_xgrab( hb_itemGetCLen( pKeyExpr ) + 1 );
pTag->szKeyExpr = ( char * ) hb_xgrab( hb_itemGetCLen( pKeyExpr ) + 1 );
hb_strncpyTrim( pTag->szKeyExpr, hb_itemGetCPtr( pKeyExpr ), hb_itemGetCLen( pKeyExpr ) );
/* TODO: FOR expresion */
pTag->szForExpr = NULL;
pTag->szForExpr = NULL;
pTag->pKeyItem = pKeyItem;
pTag->pForItem = pForItem;
pTag->bType = bType;
pTag->uiKeyLen = uiKeyLen;
pTag->pKeyItem = pKeyItem;
pTag->pForItem = pForItem;
pTag->bType = bType;
pTag->uiKeyLen = uiKeyLen;
pTag->uiTotalLen = sizeof( MIXKEY ) + pTag->uiKeyLen;
pTag->uiTotalLen = sizeof( MIXKEY ) + pTag->uiKeyLen;
/* Use national support */
if( bType == 'C' )
@@ -835,14 +835,14 @@ static PMIXTAG hb_mixTagCreate( const char * szTagName, PHB_ITEM pKeyExpr, PHB_I
}
}
pTag->Root = hb_mixTagCreateNode( pTag, HB_TRUE );
pTag->Root = hb_mixTagCreateNode( pTag, HB_TRUE );
ulStartRec = 0;
ulStartRec = 0;
if( pOrdCondInfo )
{
pEvalItem = pOrdCondInfo->itmCobEval;
lStep = pOrdCondInfo->lStep;
pEvalItem = pOrdCondInfo->itmCobEval;
lStep = pOrdCondInfo->lStep;
}
if( ! pOrdCondInfo || pOrdCondInfo->fAll )
@@ -909,7 +909,7 @@ static PMIXTAG hb_mixTagCreate( const char * szTagName, PHB_ITEM pKeyExpr, PHB_I
{
pItem = hb_vmEvalBlockOrMacro( pKeyItem );
pKey = hb_mixKeyPutItem( pKey, pItem, pArea->sqlarea.ulRecNo, pTag );
pKey = hb_mixKeyPutItem( pKey, pItem, pArea->sqlarea.ulRecNo, pTag );
hb_mixTagAddKey( pTag, pKey );
}
@@ -984,10 +984,10 @@ static void hb_mixTagGoTop( PMIXTAG pTag )
pTag->fEof = HB_TRUE;
return;
}
pTag->fEof = HB_FALSE;
pTag->CurNode = pNode;
pTag->CurPos = 0;
pTag->CurKey = MIX_KEY( pTag, pTag->CurNode, 0 );
pTag->fEof = HB_FALSE;
pTag->CurNode = pNode;
pTag->CurPos = 0;
pTag->CurKey = MIX_KEY( pTag, pTag->CurNode, 0 );
}
@@ -1006,17 +1006,17 @@ static void hb_mixTagGoBottom( PMIXTAG pTag )
pTag->fEof = HB_TRUE;
return;
}
pTag->fEof = HB_FALSE;
pTag->CurNode = pNode;
pTag->CurPos = pNode->KeyCount - 1;
pTag->CurKey = MIX_KEY( pTag, pTag->CurNode, pTag->CurPos );
pTag->fEof = HB_FALSE;
pTag->CurNode = pNode;
pTag->CurPos = pNode->KeyCount - 1;
pTag->CurKey = MIX_KEY( pTag, pTag->CurNode, pTag->CurPos );
}
static void hb_mixTagSkip( PMIXTAG pTag, HB_LONG lSkip )
{
PMIXNODE pNode, pNode2;
unsigned int uiPos, uiPos2;
PMIXNODE pNode, pNode2;
unsigned int uiPos, uiPos2;
pNode = pTag->CurNode;
uiPos = pTag->CurPos;
@@ -1033,12 +1033,12 @@ static void hb_mixTagSkip( PMIXTAG pTag, HB_LONG lSkip )
if( ( HB_LONG ) ( pNode->KeyCount - 1 - uiPos ) >= lSkip )
{
uiPos += lSkip;
lSkip = 0;
lSkip = 0;
}
else if( pNode->KeyCount - 1 > uiPos )
{
lSkip -= ( HB_LONG ) ( pNode->KeyCount - 1 - uiPos );
uiPos = pNode->KeyCount - 1;
uiPos = pNode->KeyCount - 1;
}
if( lSkip )
{
@@ -1074,7 +1074,7 @@ static void hb_mixTagSkip( PMIXTAG pTag, HB_LONG lSkip )
}
else if( lSkip < 0 )
{
lSkip = -lSkip;
lSkip = -lSkip;
/*
This is not needed. skip(-1) from Eof is processed inside sqlmixSkipRaw
@@ -1085,7 +1085,7 @@ static void hb_mixTagSkip( PMIXTAG pTag, HB_LONG lSkip )
pTag->fBof = pTag->fEof;
}
*/
pTag->fBof = pTag->fEof;
pTag->fBof = pTag->fEof;
while( ! pTag->fBof && lSkip > 0 )
{
@@ -1094,17 +1094,17 @@ static void hb_mixTagSkip( PMIXTAG pTag, HB_LONG lSkip )
if( ( HB_LONG ) uiPos >= lSkip )
{
uiPos -= lSkip;
lSkip = 0;
lSkip = 0;
}
else if( uiPos )
{
lSkip -= uiPos;
uiPos = 0;
uiPos = 0;
}
if( lSkip )
{
pNode2 = pNode;
uiPos2 = uiPos;
pNode2 = pNode;
uiPos2 = uiPos;
do
{
if( pNode->Parent )
@@ -1120,9 +1120,9 @@ static void hb_mixTagSkip( PMIXTAG pTag, HB_LONG lSkip )
}
else
{
pNode = pNode2;
uiPos = uiPos2;
pTag->fBof = HB_TRUE;
pNode = pNode2;
uiPos = uiPos2;
pTag->fBof = HB_TRUE;
}
}
}
@@ -1141,9 +1141,9 @@ static void hb_mixTagSkip( PMIXTAG pTag, HB_LONG lSkip )
}
if( ! pTag->fEof )
{
pTag->CurNode = pNode;
pTag->CurPos = uiPos;
pTag->CurKey = MIX_KEY( pTag, pNode, uiPos );
pTag->CurNode = pNode;
pTag->CurPos = uiPos;
pTag->CurKey = MIX_KEY( pTag, pNode, uiPos );
}
}
@@ -1158,9 +1158,9 @@ static PMIXTAG hb_mixFindTag( SQLMIXAREAP pArea, PHB_ITEM pOrder )
{
int iOrder, iCurr = 0;
iOrder = hb_itemGetNI( pOrder );
iOrder = hb_itemGetNI( pOrder );
pTag = pArea->pTagList;
pTag = pArea->pTagList;
while( pTag && iOrder != ++iCurr )
{
pTag = pTag->pNext;
@@ -1186,8 +1186,8 @@ static PMIXTAG hb_mixFindTag( SQLMIXAREAP pArea, PHB_ITEM pOrder )
static HB_ULONG hb_mixTagNodeKeyCount( PMIXNODE pNode )
{
HB_ULONG ulKeyCount;
unsigned int ui;
HB_ULONG ulKeyCount;
unsigned int ui;
ulKeyCount = pNode->KeyCount;
if( ! pNode->Leaf )
@@ -1230,9 +1230,9 @@ static HB_ULONG hb_mixDBOIKeyCount( PMIXTAG pTag, HB_BOOL fFilter )
if( fFilter && pTag->pArea->sqlarea.area.dbfi.fFilter )
{
PMIXNODE pNode = pTag->CurNode;
unsigned int uiPos = pTag->CurPos;
HB_ULONG ulRecNo = pTag->pArea->sqlarea.ulRecNo;
PMIXNODE pNode = pTag->CurNode;
unsigned int uiPos = pTag->CurPos;
HB_ULONG ulRecNo = pTag->pArea->sqlarea.ulRecNo;
ulKeyCount = 0;
@@ -1266,8 +1266,8 @@ static HB_ULONG hb_mixDBOIKeyNo( PMIXTAG pTag, HB_BOOL fFilter )
ulKeyCount = 0;
else
{
PMIXNODE pNode = pTag->CurNode;
unsigned int ui, uiPos = pTag->CurPos;
PMIXNODE pNode = pTag->CurNode;
unsigned int ui, uiPos = pTag->CurPos;
ulKeyCount = 1;
@@ -1309,10 +1309,10 @@ static HB_ERRCODE sqlmixGoBottom( SQLMIXAREAP pArea )
hb_mixTagGoBottom( pArea->pTag );
pArea->sqlarea.area.fTop = HB_FALSE;
pArea->sqlarea.area.fBottom = HB_TRUE;
pArea->sqlarea.area.fTop = HB_FALSE;
pArea->sqlarea.area.fBottom = HB_TRUE;
retval = SELF_GOTO( ( AREAP ) pArea, pArea->pTag->CurKey ? pArea->pTag->CurKey->rec : 0 );
retval = SELF_GOTO( ( AREAP ) pArea, pArea->pTag->CurKey ? pArea->pTag->CurKey->rec : 0 );
if( retval != HB_FAILURE && pArea->sqlarea.fPositioned )
retval = SELF_SKIPFILTER( ( AREAP ) pArea, -1 );
@@ -1335,10 +1335,10 @@ static HB_ERRCODE sqlmixGoTop( SQLMIXAREAP pArea )
hb_mixTagGoTop( pArea->pTag );
pArea->sqlarea.area.fTop = HB_TRUE;
pArea->sqlarea.area.fBottom = HB_FALSE;
pArea->sqlarea.area.fTop = HB_TRUE;
pArea->sqlarea.area.fBottom = HB_FALSE;
retval = SELF_GOTO( ( AREAP ) pArea, pArea->pTag->CurKey ? pArea->pTag->CurKey->rec : 0 );
retval = SELF_GOTO( ( AREAP ) pArea, pArea->pTag->CurKey ? pArea->pTag->CurKey->rec : 0 );
if( retval != HB_FAILURE && pArea->sqlarea.fPositioned )
retval = SELF_SKIPFILTER( ( AREAP ) pArea, 1 );
@@ -1358,22 +1358,22 @@ static HB_ERRCODE sqlmixSeek( SQLMIXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pIt
}
else
{
PMIXKEY pKey;
HB_ERRCODE errCode = HB_SUCCESS;
HB_BOOL fEOF;
PMIXTAG pTag = pArea->pTag;
PMIXNODE pNode;
unsigned int uiKeyLen, ui;
PMIXKEY pKey;
HB_ERRCODE errCode = HB_SUCCESS;
HB_BOOL fEOF;
PMIXTAG pTag = pArea->pTag;
PMIXNODE pNode;
unsigned int uiKeyLen, ui;
if( pArea->sqlarea.lpdbPendingRel && pArea->sqlarea.lpdbPendingRel->isScoped )
SELF_FORCEREL( ( AREAP ) pArea );
pArea->sqlarea.area.fTop = pArea->sqlarea.area.fBottom = HB_FALSE;
pArea->sqlarea.area.fEof = HB_FALSE;
pArea->sqlarea.area.fTop = pArea->sqlarea.area.fBottom = HB_FALSE;
pArea->sqlarea.area.fEof = HB_FALSE;
pKey = hb_mixKeyPutItem( NULL, pItem, fFindLast ? ( HB_ULONG ) -1 : 0, pTag );
pKey = hb_mixKeyPutItem( NULL, pItem, fFindLast ? ( HB_ULONG ) -1 : 0, pTag );
uiKeyLen = pTag->uiKeyLen;
uiKeyLen = pTag->uiKeyLen;
if( pTag->bType == 'C' )
{
uiKeyLen = ( unsigned int ) hb_itemGetCLen( pItem );
@@ -1431,8 +1431,8 @@ static HB_ERRCODE sqlmixSeek( SQLMIXAREAP pArea, HB_BOOL fSoftSeek, PHB_ITEM pIt
static HB_ERRCODE sqlmixSkipRaw( SQLMIXAREAP pArea, HB_LONG lToSkip )
{
PMIXTAG pTag = pArea->pTag;
HB_BOOL fOut = HB_FALSE;
PMIXTAG pTag = pArea->pTag;
HB_BOOL fOut = HB_FALSE;
if( SELF_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE )
return HB_FAILURE;
@@ -1460,16 +1460,16 @@ static HB_ERRCODE sqlmixSkipRaw( SQLMIXAREAP pArea, HB_LONG lToSkip )
if( SELF_GOTO( ( AREAP ) pArea, ( pTag->fEof || fOut ) ? 0 : pTag->CurKey->rec ) != HB_SUCCESS )
return HB_FAILURE;
pArea->sqlarea.area.fEof = pTag->fEof;
pArea->sqlarea.area.fBof = pTag->fBof;
pArea->sqlarea.area.fEof = pTag->fEof;
pArea->sqlarea.area.fBof = pTag->fBof;
return HB_SUCCESS;
}
static HB_ERRCODE sqlmixGoCold( SQLMIXAREAP pArea )
{
HB_BOOL fRecordChanged = pArea->sqlarea.fRecordChanged;
HB_BOOL fAppend = pArea->sqlarea.fAppend;
HB_BOOL fRecordChanged = pArea->sqlarea.fRecordChanged;
HB_BOOL fAppend = pArea->sqlarea.fAppend;
if( SUPER_GOCOLD( ( AREAP ) pArea ) == HB_FAILURE )
return HB_FAILURE;
@@ -1480,10 +1480,10 @@ static HB_ERRCODE sqlmixGoCold( SQLMIXAREAP pArea )
HB_BOOL fAdd, fDel;
LPDBRELINFO lpdbPendingRel;
lpdbPendingRel = pArea->sqlarea.lpdbPendingRel;
lpdbPendingRel = pArea->sqlarea.lpdbPendingRel;
pArea->sqlarea.lpdbPendingRel = NULL;
pTag = pArea->pTagList;
pTag = pArea->pTagList;
while( pTag )
{
@@ -1502,8 +1502,8 @@ static HB_ERRCODE sqlmixGoCold( SQLMIXAREAP pArea )
{
if( hb_mixKeyCompare( pTag, pKey, pTag->HotKey, pTag->uiKeyLen ) == 0 )
{
fDel = ! fAdd && pTag->HotFor;
fAdd = fAdd && ! pTag->HotFor;
fDel = ! fAdd && pTag->HotFor;
fAdd = fAdd && ! pTag->HotFor;
}
else
{
@@ -1545,8 +1545,8 @@ static HB_ERRCODE sqlmixGoHot( SQLMIXAREAP pArea )
{
if( ! pTag->fCustom )
{
pTag->HotKey = hb_mixKeyEval( pTag->HotKey, pTag );
pTag->HotFor = pTag->pForItem == NULL || hb_mixEvalCond( pArea, pTag->pForItem );
pTag->HotKey = hb_mixKeyEval( pTag->HotKey, pTag );
pTag->HotFor = pTag->pForItem == NULL || hb_mixEvalCond( pArea, pTag->pForItem );
}
pTag = pTag->pNext;
}
@@ -1584,8 +1584,8 @@ static HB_ERRCODE sqlmixOrderListClear( SQLMIXAREAP pArea )
while( pArea->pTagList )
{
pTag = pArea->pTagList;
pArea->pTagList = pTag->pNext;
pTag = pArea->pTagList;
pArea->pTagList = pTag->pNext;
hb_mixTagDestroy( pTag );
}
pArea->pTag = NULL;
@@ -1610,11 +1610,11 @@ static HB_ERRCODE sqlmixOrderListFocus( SQLMIXAREAP pArea, LPDBORDERINFO pOrderI
static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrderInfo )
{
PMIXTAG pTagNew, pTag;
PHB_ITEM pKeyItem, pForItem = NULL, pWhileItem = NULL, pResult;
HB_ULONG ulRecNo;
HB_USHORT uiLen;
HB_BYTE bType;
PMIXTAG pTagNew, pTag;
PHB_ITEM pKeyItem, pForItem = NULL, pWhileItem = NULL, pResult;
HB_ULONG ulRecNo;
HB_USHORT uiLen;
HB_BYTE bType;
/* Obtain key codeblock */
if( pOrderInfo->itmCobExpr )
@@ -1625,7 +1625,7 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd
{
if( SELF_COMPILE( ( AREAP ) pArea, hb_itemGetCPtr( pOrderInfo->abExpr ) ) == HB_FAILURE )
return HB_FAILURE;
pKeyItem = pArea->sqlarea.area.valResult;
pKeyItem = pArea->sqlarea.area.valResult;
pArea->sqlarea.area.valResult = NULL;
}
@@ -1639,7 +1639,7 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd
return HB_FAILURE;
}
pResult = pArea->sqlarea.area.valResult;
pResult = pArea->sqlarea.area.valResult;
pArea->sqlarea.area.valResult = NULL;
switch( hb_itemType( pResult ) )
@@ -1698,7 +1698,7 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
return HB_FAILURE;
}
pForItem = pArea->sqlarea.area.valResult;
pForItem = pArea->sqlarea.area.valResult;
pArea->sqlarea.area.valResult = NULL;
}
@@ -1717,7 +1717,7 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd
SELF_GOTO( ( AREAP ) pArea, ulRecNo );
return HB_FAILURE;
}
pWhileItem = pArea->sqlarea.area.valResult;
pWhileItem = pArea->sqlarea.area.valResult;
pArea->sqlarea.area.valResult = NULL;
}
}
@@ -1781,8 +1781,8 @@ static HB_ERRCODE sqlmixOrderCreate( SQLMIXAREAP pArea, LPDBORDERCREATEINFO pOrd
static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORDERINFO pOrderInfo )
{
PMIXTAG pTag;
HB_USHORT uiTag = 0;
PMIXTAG pTag;
HB_USHORT uiTag = 0;
switch( uiIndex )
{
@@ -1839,9 +1839,9 @@ static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORD
{
if( hb_itemType( pArea->sqlarea.area.valResult ) == HB_IT_LOGICAL )
{
pTag->szForExpr = hb_strdup( pForExpr );
pTag->pForItem = pForItem;
pForItem = NULL;
pTag->szForExpr = hb_strdup( pForExpr );
pTag->pForItem = pForItem;
pForItem = NULL;
}
hb_itemRelease( pArea->sqlarea.area.valResult );
pArea->sqlarea.area.valResult = NULL;
@@ -1920,9 +1920,9 @@ static HB_ERRCODE sqlmixOrderInfo( SQLMIXAREAP pArea, HB_USHORT uiIndex, LPDBORD
{
char szType[ 2 ];
szType[ 0 ] = ( char ) pTag->bType;
szType[ 1 ] = 0;
pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult, szType );
szType[ 0 ] = ( char ) pTag->bType;
szType[ 1 ] = 0;
pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult, szType );
}
else
pOrderInfo->itmResult = hb_itemPutC( pOrderInfo->itmResult, NULL );
@@ -2073,106 +2073,106 @@ static HB_ERRCODE sqlmixExit( LPRDDNODE pRDD )
static RDDFUNCS sqlmixTable =
{ ( DBENTRYP_BP ) NULL, /* sqlmixBof */
( DBENTRYP_BP ) NULL, /* sqlmixEof */
( DBENTRYP_BP ) NULL, /* sqlmixFound */
{ ( DBENTRYP_BP ) NULL, /* sqlmixBof */
( DBENTRYP_BP ) NULL, /* sqlmixEof */
( DBENTRYP_BP ) NULL, /* sqlmixFound */
( DBENTRYP_V ) sqlmixGoBottom,
( DBENTRYP_UL ) NULL, /* sqlmixGoTo */
( DBENTRYP_I ) NULL, /* sqlmixGoToId */
( DBENTRYP_UL ) NULL, /* sqlmixGoTo */
( DBENTRYP_I ) NULL, /* sqlmixGoToId */
( DBENTRYP_V ) sqlmixGoTop,
( DBENTRYP_BIB ) sqlmixSeek,
( DBENTRYP_L ) NULL, /* sqlmixSkip */
( DBENTRYP_L ) NULL, /* sqlmixSkipFilter */
( DBENTRYP_L ) NULL, /* sqlmixSkip */
( DBENTRYP_L ) NULL, /* sqlmixSkipFilter */
( DBENTRYP_L ) sqlmixSkipRaw,
( DBENTRYP_VF ) NULL, /* sqlmixAddField */
( DBENTRYP_B ) NULL, /* sqlmixAppend */
( DBENTRYP_I ) NULL, /* sqlmixCreateFields */
( DBENTRYP_V ) NULL, /* sqlmixDeleteRec */
( DBENTRYP_BP ) NULL, /* sqlmixDeleted */
( DBENTRYP_SP ) NULL, /* sqlmixFieldCount */
( DBENTRYP_VF ) NULL, /* sqlmixFieldDisplay */
( DBENTRYP_SSI ) NULL, /* sqlmixFieldInfo */
( DBENTRYP_SCP ) NULL, /* sqlmixFieldName */
( DBENTRYP_V ) NULL, /* sqlmixFlush */
( DBENTRYP_PP ) NULL, /* sqlmixGetRec */
( DBENTRYP_SI ) NULL, /* sqlmixGetValue */
( DBENTRYP_SVL ) NULL, /* sqlmixGetVarLen */
( DBENTRYP_VF ) NULL, /* sqlmixAddField */
( DBENTRYP_B ) NULL, /* sqlmixAppend */
( DBENTRYP_I ) NULL, /* sqlmixCreateFields */
( DBENTRYP_V ) NULL, /* sqlmixDeleteRec */
( DBENTRYP_BP ) NULL, /* sqlmixDeleted */
( DBENTRYP_SP ) NULL, /* sqlmixFieldCount */
( DBENTRYP_VF ) NULL, /* sqlmixFieldDisplay */
( DBENTRYP_SSI ) NULL, /* sqlmixFieldInfo */
( DBENTRYP_SCP ) NULL, /* sqlmixFieldName */
( DBENTRYP_V ) NULL, /* sqlmixFlush */
( DBENTRYP_PP ) NULL, /* sqlmixGetRec */
( DBENTRYP_SI ) NULL, /* sqlmixGetValue */
( DBENTRYP_SVL ) NULL, /* sqlmixGetVarLen */
( DBENTRYP_V ) sqlmixGoCold,
( DBENTRYP_V ) sqlmixGoHot,
( DBENTRYP_P ) NULL, /* sqlmixPutRec */
( DBENTRYP_SI ) NULL, /* sqlmixPutValue */
( DBENTRYP_V ) NULL, /* sqlmixRecall */
( DBENTRYP_ULP ) NULL, /* sqlmixRecCount */
( DBENTRYP_ISI ) NULL, /* sqlmixRecInfo */
( DBENTRYP_ULP ) NULL, /* sqlmixRecNo */
( DBENTRYP_I ) NULL, /* sqlmixRecId */
( DBENTRYP_S ) NULL, /* sqlmixSetFieldExtent */
( DBENTRYP_CP ) NULL, /* sqlmixAlias */
( DBENTRYP_P ) NULL, /* sqlmixPutRec */
( DBENTRYP_SI ) NULL, /* sqlmixPutValue */
( DBENTRYP_V ) NULL, /* sqlmixRecall */
( DBENTRYP_ULP ) NULL, /* sqlmixRecCount */
( DBENTRYP_ISI ) NULL, /* sqlmixRecInfo */
( DBENTRYP_ULP ) NULL, /* sqlmixRecNo */
( DBENTRYP_I ) NULL, /* sqlmixRecId */
( DBENTRYP_S ) NULL, /* sqlmixSetFieldExtent */
( DBENTRYP_CP ) NULL, /* sqlmixAlias */
( DBENTRYP_V ) sqlmixClose,
( DBENTRYP_VO ) NULL, /* sqlmixCreate */
( DBENTRYP_SI ) NULL, /* sqlmixInfo */
( DBENTRYP_V ) NULL, /* sqlmixNewArea */
( DBENTRYP_VO ) NULL, /* sqlmixOpen */
( DBENTRYP_V ) NULL, /* sqlmixRelease */
( DBENTRYP_VO ) NULL, /* sqlmixCreate */
( DBENTRYP_SI ) NULL, /* sqlmixInfo */
( DBENTRYP_V ) NULL, /* sqlmixNewArea */
( DBENTRYP_VO ) NULL, /* sqlmixOpen */
( DBENTRYP_V ) NULL, /* sqlmixRelease */
( DBENTRYP_SP ) sqlmixStructSize,
( DBENTRYP_CP ) NULL, /* sqlmixSysName */
( DBENTRYP_VEI ) NULL, /* sqlmixEval */
( DBENTRYP_V ) NULL, /* sqlmixPack */
( DBENTRYP_LSP ) NULL, /* sqlmixPackRec */
( DBENTRYP_VS ) NULL, /* sqlmixSort */
( DBENTRYP_VT ) NULL, /* sqlmixTrans */
( DBENTRYP_VT ) NULL, /* sqlmixTransRec */
( DBENTRYP_V ) NULL, /* sqlmixZap */
( DBENTRYP_VR ) NULL, /* sqlmixChildEnd */
( DBENTRYP_VR ) NULL, /* sqlmixChildStart */
( DBENTRYP_VR ) NULL, /* sqlmixChildSync */
( DBENTRYP_V ) NULL, /* sqlmixSyncChildren */
( DBENTRYP_V ) NULL, /* sqlmixClearRel */
( DBENTRYP_V ) NULL, /* sqlmixForceRel */
( DBENTRYP_SSP ) NULL, /* sqlmixRelArea */
( DBENTRYP_VR ) NULL, /* sqlmixRelEval */
( DBENTRYP_SI ) NULL, /* sqlmixRelText */
( DBENTRYP_VR ) NULL, /* sqlmixSetRel */
( DBENTRYP_VOI ) NULL, /* sqlmixOrderListAdd */
( DBENTRYP_CP ) NULL, /* sqlmixSysName */
( DBENTRYP_VEI ) NULL, /* sqlmixEval */
( DBENTRYP_V ) NULL, /* sqlmixPack */
( DBENTRYP_LSP ) NULL, /* sqlmixPackRec */
( DBENTRYP_VS ) NULL, /* sqlmixSort */
( DBENTRYP_VT ) NULL, /* sqlmixTrans */
( DBENTRYP_VT ) NULL, /* sqlmixTransRec */
( DBENTRYP_V ) NULL, /* sqlmixZap */
( DBENTRYP_VR ) NULL, /* sqlmixChildEnd */
( DBENTRYP_VR ) NULL, /* sqlmixChildStart */
( DBENTRYP_VR ) NULL, /* sqlmixChildSync */
( DBENTRYP_V ) NULL, /* sqlmixSyncChildren */
( DBENTRYP_V ) NULL, /* sqlmixClearRel */
( DBENTRYP_V ) NULL, /* sqlmixForceRel */
( DBENTRYP_SSP ) NULL, /* sqlmixRelArea */
( DBENTRYP_VR ) NULL, /* sqlmixRelEval */
( DBENTRYP_SI ) NULL, /* sqlmixRelText */
( DBENTRYP_VR ) NULL, /* sqlmixSetRel */
( DBENTRYP_VOI ) NULL, /* sqlmixOrderListAdd */
( DBENTRYP_V ) sqlmixOrderListClear,
( DBENTRYP_VOI ) NULL, /* sqlmixOrderListDelete */
( DBENTRYP_VOI ) NULL, /* sqlmixOrderListDelete */
( DBENTRYP_VOI ) sqlmixOrderListFocus,
( DBENTRYP_V ) NULL, /* sqlmixOrderListRebuild */
( DBENTRYP_VOO ) NULL, /* sqlmixOrderCondition */
( DBENTRYP_V ) NULL, /* sqlmixOrderListRebuild */
( DBENTRYP_VOO ) NULL, /* sqlmixOrderCondition */
( DBENTRYP_VOC ) sqlmixOrderCreate,
( DBENTRYP_VOI ) NULL, /* sqlmixOrderDestroy */
( DBENTRYP_VOI ) NULL, /* sqlmixOrderDestroy */
( DBENTRYP_SVOI ) sqlmixOrderInfo,
( DBENTRYP_V ) NULL, /* sqlmixClearFilter */
( DBENTRYP_V ) NULL, /* sqlmixClearLocate */
( DBENTRYP_V ) NULL, /* sqlmixClearScope */
( DBENTRYP_VPLP ) NULL, /* sqlmixCountScope */
( DBENTRYP_I ) NULL, /* sqlmixFilterText */
( DBENTRYP_SI ) NULL, /* sqlmixScopeInfo */
( DBENTRYP_VFI ) NULL, /* sqlmixSetFilter */
( DBENTRYP_VLO ) NULL, /* sqlmixSetLocate */
( DBENTRYP_VOS ) NULL, /* sqlmixSetScope */
( DBENTRYP_VPL ) NULL, /* sqlmixSkipScope */
( DBENTRYP_B ) NULL, /* sqlmixLocate */
( DBENTRYP_CC ) NULL, /* sqlmixCompile */
( DBENTRYP_I ) NULL, /* sqlmixError */
( DBENTRYP_I ) NULL, /* sqlmixEvalBlock */
( DBENTRYP_VSP ) NULL, /* sqlmixRawLock */
( DBENTRYP_VL ) NULL, /* sqlmixLock */
( DBENTRYP_I ) NULL, /* sqlmixUnLock */
( DBENTRYP_V ) NULL, /* sqlmixCloseMemFile */
( DBENTRYP_VO ) NULL, /* sqlmixCreateMemFile */
( DBENTRYP_SCCS ) NULL, /* sqlmixGetValueFile */
( DBENTRYP_VO ) NULL, /* sqlmixOpenMemFile */
( DBENTRYP_SCCS ) NULL, /* sqlmixPutValueFile */
( DBENTRYP_V ) NULL, /* sqlmixReadDBHeader */
( DBENTRYP_V ) NULL, /* sqlmixWriteDBHeader */
( DBENTRYP_V ) NULL, /* sqlmixClearFilter */
( DBENTRYP_V ) NULL, /* sqlmixClearLocate */
( DBENTRYP_V ) NULL, /* sqlmixClearScope */
( DBENTRYP_VPLP ) NULL, /* sqlmixCountScope */
( DBENTRYP_I ) NULL, /* sqlmixFilterText */
( DBENTRYP_SI ) NULL, /* sqlmixScopeInfo */
( DBENTRYP_VFI ) NULL, /* sqlmixSetFilter */
( DBENTRYP_VLO ) NULL, /* sqlmixSetLocate */
( DBENTRYP_VOS ) NULL, /* sqlmixSetScope */
( DBENTRYP_VPL ) NULL, /* sqlmixSkipScope */
( DBENTRYP_B ) NULL, /* sqlmixLocate */
( DBENTRYP_CC ) NULL, /* sqlmixCompile */
( DBENTRYP_I ) NULL, /* sqlmixError */
( DBENTRYP_I ) NULL, /* sqlmixEvalBlock */
( DBENTRYP_VSP ) NULL, /* sqlmixRawLock */
( DBENTRYP_VL ) NULL, /* sqlmixLock */
( DBENTRYP_I ) NULL, /* sqlmixUnLock */
( DBENTRYP_V ) NULL, /* sqlmixCloseMemFile */
( DBENTRYP_VO ) NULL, /* sqlmixCreateMemFile */
( DBENTRYP_SCCS ) NULL, /* sqlmixGetValueFile */
( DBENTRYP_VO ) NULL, /* sqlmixOpenMemFile */
( DBENTRYP_SCCS ) NULL, /* sqlmixPutValueFile */
( DBENTRYP_V ) NULL, /* sqlmixReadDBHeader */
( DBENTRYP_V ) NULL, /* sqlmixWriteDBHeader */
( DBENTRYP_R ) sqlmixInit,
( DBENTRYP_R ) sqlmixExit,
( DBENTRYP_RVVL ) NULL, /* sqlmixDrop */
( DBENTRYP_RVVL ) NULL, /* sqlmixExists */
( DBENTRYP_RVVVL ) NULL, /* sqlmixRename */
( DBENTRYP_RSLV ) NULL, /* sqlmixRddInfo */
( DBENTRYP_SVP ) NULL, /* sqlmixWhoCares */
( DBENTRYP_RVVL ) NULL, /* sqlmixDrop */
( DBENTRYP_RVVL ) NULL, /* sqlmixExists */
( DBENTRYP_RVVVL ) NULL, /* sqlmixRename */
( DBENTRYP_RSLV ) NULL, /* sqlmixRddInfo */
( DBENTRYP_SVP ) NULL, /* sqlmixWhoCares */
};
/* force SQLBASE linking */
@@ -2183,10 +2183,10 @@ HB_FUNC_STATIC( SQLMIX_GETFUNCTABLE )
RDDFUNCS * pTable;
HB_USHORT * puiCount, * puiSuperRddId, uiRddId;
puiCount = ( HB_USHORT * ) hb_parptr( 1 );
pTable = ( RDDFUNCS * ) hb_parptr( 2 );
uiRddId = ( HB_USHORT ) hb_parni( 4 );
puiSuperRddId = ( HB_USHORT * ) hb_parptr( 5 );
puiCount = ( HB_USHORT * ) hb_parptr( 1 );
pTable = ( RDDFUNCS * ) hb_parptr( 2 );
uiRddId = ( HB_USHORT ) hb_parni( 4 );
puiSuperRddId = ( HB_USHORT * ) hb_parptr( 5 );
if( pTable )
{
@@ -2232,7 +2232,7 @@ HB_CALL_ON_STARTUP_END( _hb_sqlmix_rdd_init_ )
#pragma startup sqlmix__InitSymbols
#pragma startup _hb_sqlmix_rdd_init_
#elif defined( HB_DATASEG_STARTUP )
#define HB_DATASEG_BODY HB_DATASEG_FUNC( sqlmix__InitSymbols ) \
#define HB_DATASEG_BODY HB_DATASEG_FUNC( sqlmix__InitSymbols ) \
HB_DATASEG_FUNC( _hb_sqlmix_rdd_init_ )
#include "hbiniseg.h"
#endif

View File

@@ -71,8 +71,8 @@ typedef struct
typedef struct
{
isc_tr_handle hTrans;
isc_stmt_handle hStmt;
isc_tr_handle hTrans;
isc_stmt_handle hStmt;
XSQLDA ISC_FAR * pSqlda;
} SDDDATA;
@@ -112,7 +112,9 @@ static void hb_firebirddd_init( void * cargo )
HB_FUNC_TRANSLATE( SDDFB, SQLBASE )
HB_INIT_SYMBOLS_BEGIN( firebirddd__InitSymbols )
{ "SDDFB", { HB_FS_PUBLIC | HB_FS_LOCAL }, { HB_FUNCNAME( SDDFB ) }, NULL },
{
"SDDFB", { HB_FS_PUBLIC | HB_FS_LOCAL }, { HB_FUNCNAME( SDDFB ) }, NULL
},
HB_INIT_SYMBOLS_END( firebirddd__InitSymbols )
HB_CALL_ON_STARTUP_BEGIN( _hb_firebirddd_init_ )
@@ -123,7 +125,7 @@ HB_CALL_ON_STARTUP_END( _hb_firebirddd_init_ )
#pragma startup firebirddd__InitSymbols
#pragma startup _hb_firebirddd_init_
#elif defined( HB_DATASEG_STARTUP )
#define HB_DATASEG_BODY HB_DATASEG_FUNC( firebirddd__InitSymbols ) \
#define HB_DATASEG_BODY HB_DATASEG_FUNC( firebirddd__InitSymbols ) \
HB_DATASEG_FUNC( _hb_firebirddd_init_ )
#include "hbiniseg.h"
#endif
@@ -132,8 +134,8 @@ HB_CALL_ON_STARTUP_END( _hb_firebirddd_init_ )
/* ===================================================================================== */
static HB_USHORT hb_errRT_FireBirdDD( HB_ERRCODE errGenCode, HB_ERRCODE errSubCode, const char * szDescription, const char * szOperation, HB_ERRCODE errOsCode )
{
HB_USHORT uiAction;
PHB_ITEM pError;
HB_USHORT uiAction;
PHB_ITEM pError;
pError = hb_errRT_New( ES_ERROR, "SDDFB", errGenCode, errSubCode, szDescription, szOperation, errOsCode, EF_NONE );
uiAction = hb_errLaunch( pError );
@@ -145,30 +147,30 @@ static HB_USHORT hb_errRT_FireBirdDD( HB_ERRCODE errGenCode, HB_ERRCODE errSubCo
static HB_ERRCODE fbConnect( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
{
ISC_STATUS_ARRAY status;
isc_db_handle hDb = ( isc_db_handle ) 0;
char parambuf[ 520 ];
int i;
unsigned int ul;
ISC_STATUS_ARRAY status;
isc_db_handle hDb = ( isc_db_handle ) 0;
char parambuf[ 520 ];
int i;
unsigned int ul;
i = 0;
parambuf[ i++ ] = isc_dpb_version1;
i = 0;
parambuf[ i++ ] = isc_dpb_version1;
parambuf[ i++ ] = isc_dpb_user_name;
ul = ( unsigned int ) hb_arrayGetCLen( pItem, 3 );
parambuf[ i++ ] = isc_dpb_user_name;
ul = ( unsigned int ) hb_arrayGetCLen( pItem, 3 );
if( ul > 255 )
ul = 255;
parambuf[ i++ ] = ( char ) ul;
parambuf[ i++ ] = ( char ) ul;
memcpy( parambuf + i, hb_arrayGetCPtr( pItem, 3 ), ul );
i += ul;
i += ul;
parambuf[ i++ ] = isc_dpb_password;
ul = ( unsigned int ) hb_arrayGetCLen( pItem, 4 );
parambuf[ i++ ] = isc_dpb_password;
ul = ( unsigned int ) hb_arrayGetCLen( pItem, 4 );
if( ul > 255 )
ul = 255;
parambuf[ i++ ] = ( char ) ul;
parambuf[ i++ ] = ( char ) ul;
memcpy( parambuf + i, hb_arrayGetCPtr( pItem, 4 ), ul );
i += ul;
i += ul;
if( isc_attach_database( status, ( short ) hb_arrayGetCLen( pItem, 5 ), hb_arrayGetCPtr( pItem, 5 ),
&hDb, ( short ) i, parambuf ) )
@@ -176,7 +178,7 @@ static HB_ERRCODE fbConnect( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
/* TODO: error code in status[1]; */
return HB_FAILURE;
}
pConnection->pSDDConn = hb_xgrab( sizeof( SDDCONN ) );
pConnection->pSDDConn = hb_xgrab( sizeof( SDDCONN ) );
( ( SDDCONN * ) pConnection->pSDDConn )->hDb = hDb;
/* HB_TRACE( HB_TR_ALWAYS, ("hDb=%d", hDb) ); */
return HB_SUCCESS;
@@ -203,21 +205,21 @@ static HB_ERRCODE fbExecute( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
static HB_ERRCODE fbOpen( SQLBASEAREAP pArea )
{
isc_db_handle * phDb = &( ( SDDCONN * ) pArea->pConnection->pSDDConn )->hDb;
SDDDATA * pSDDData;
ISC_STATUS_ARRAY status;
isc_tr_handle hTrans = ( isc_tr_handle ) 0;
isc_stmt_handle hStmt = ( isc_stmt_handle ) 0;
XSQLDA ISC_FAR * pSqlda;
XSQLVAR * pVar;
PHB_ITEM pItemEof, pItem;
DBFIELDINFO pFieldInfo;
HB_BOOL bError;
HB_USHORT uiFields, uiCount;
int iType;
isc_db_handle * phDb = &( ( SDDCONN * ) pArea->pConnection->pSDDConn )->hDb;
SDDDATA * pSDDData;
ISC_STATUS_ARRAY status;
isc_tr_handle hTrans = ( isc_tr_handle ) 0;
isc_stmt_handle hStmt = ( isc_stmt_handle ) 0;
XSQLDA ISC_FAR * pSqlda;
XSQLVAR * pVar;
PHB_ITEM pItemEof, pItem;
DBFIELDINFO pFieldInfo;
HB_BOOL bError;
HB_USHORT uiFields, uiCount;
int iType;
pArea->pSDDData = memset( hb_xgrab( sizeof( SDDDATA ) ), 0, sizeof( SDDDATA ) );
pSDDData = ( SDDDATA * ) pArea->pSDDData;
pArea->pSDDData = memset( hb_xgrab( sizeof( SDDDATA ) ), 0, sizeof( SDDDATA ) );
pSDDData = ( SDDDATA * ) pArea->pSDDData;
memset( &status, 0, sizeof( status ) );
@@ -236,9 +238,9 @@ static HB_ERRCODE fbOpen( SQLBASEAREAP pArea )
return HB_FAILURE;
}
pSqlda = ( XSQLDA * ) hb_xgrab( XSQLDA_LENGTH( 1 ) );
pSqlda->sqln = 1;
pSqlda->version = 1;
pSqlda = ( XSQLDA * ) hb_xgrab( XSQLDA_LENGTH( 1 ) );
pSqlda->sqln = 1;
pSqlda->version = 1;
if( isc_dsql_prepare( status, &hTrans, &hStmt, 0, pArea->szQuery, SQL_DIALECT_V5, pSqlda ) )
{
@@ -250,11 +252,11 @@ static HB_ERRCODE fbOpen( SQLBASEAREAP pArea )
}
if( pSqlda->sqld > pSqlda->sqln )
{
uiFields = pSqlda->sqld;
uiFields = pSqlda->sqld;
hb_xfree( pSqlda );
pSqlda = ( XSQLDA * ) hb_xgrab( XSQLDA_LENGTH( uiFields ) );
pSqlda->sqln = uiFields;
pSqlda->version = 1;
pSqlda = ( XSQLDA * ) hb_xgrab( XSQLDA_LENGTH( uiFields ) );
pSqlda->sqln = uiFields;
pSqlda->version = 1;
if( isc_dsql_describe( status, &hStmt, SQL_DIALECT_V5, pSqlda ) )
{
@@ -266,16 +268,16 @@ static HB_ERRCODE fbOpen( SQLBASEAREAP pArea )
}
}
pSDDData->hTrans = hTrans;
pSDDData->hStmt = hStmt;
pSDDData->pSqlda = pSqlda;
pSDDData->hTrans = hTrans;
pSDDData->hStmt = hStmt;
pSDDData->pSqlda = pSqlda;
uiFields = pSqlda->sqld;
uiFields = pSqlda->sqld;
SELF_SETFIELDEXTENT( ( AREAP ) pArea, uiFields );
pItemEof = hb_itemArrayNew( uiFields );
pItemEof = hb_itemArrayNew( uiFields );
bError = HB_FALSE;
bError = HB_FALSE;
for( uiCount = 0, pVar = pSqlda->sqlvar; uiCount < uiFields; uiCount++, pVar++ )
{
/* FIXME: if pVar->sqlname is ended with 0 byte then this hb_strndup()
@@ -284,11 +286,11 @@ static HB_ERRCODE fbOpen( SQLBASEAREAP pArea )
* is enough.
*/
char * szOurName = hb_strndup( pVar->sqlname, pVar->sqlname_length );
pFieldInfo.atomName = szOurName;
pFieldInfo.atomName = szOurName;
pFieldInfo.uiDec = 0;
pFieldInfo.uiDec = 0;
iType = pVar->sqltype & ~1;
iType = pVar->sqltype & ~1;
switch( iType )
{
case SQL_TEXT:
@@ -301,7 +303,7 @@ static HB_ERRCODE fbOpen( SQLBASEAREAP pArea )
pFieldInfo.uiType = HB_FT_STRING;
pFieldInfo.uiLen = pVar->sqllen;
/* pVar->sqltype = SQL_TEXT; Coercing */
pVar->sqldata = ( char * ) hb_xgrab( sizeof( char ) * pVar->sqllen + 2 );
pVar->sqldata = ( char * ) hb_xgrab( sizeof( char ) * pVar->sqllen + 2 );
break;
case SQL_SHORT:
@@ -348,11 +350,11 @@ static HB_ERRCODE fbOpen( SQLBASEAREAP pArea )
{
char * pStr;
pStr = ( char * ) hb_xgrab( pFieldInfo.uiLen + 1 );
pStr = ( char * ) hb_xgrab( pFieldInfo.uiLen + 1 );
memset( pStr, ' ', pFieldInfo.uiLen );
pStr[ pFieldInfo.uiLen ] = '\0';
pStr[ pFieldInfo.uiLen ] = '\0';
pItem = hb_itemPutCL( NULL, pStr, pFieldInfo.uiLen );
pItem = hb_itemPutCL( NULL, pStr, pFieldInfo.uiLen );
hb_xfree( pStr );
break;
}
@@ -382,8 +384,8 @@ static HB_ERRCODE fbOpen( SQLBASEAREAP pArea )
break;
default:
pItem = hb_itemNew( NULL );
bError = HB_TRUE;
pItem = hb_itemNew( NULL );
bError = HB_TRUE;
break;
}
@@ -414,15 +416,15 @@ static HB_ERRCODE fbOpen( SQLBASEAREAP pArea )
return HB_FAILURE;
}
pArea->ulRecCount = 0;
pArea->ulRecCount = 0;
pArea->pRow = ( void ** ) hb_xgrab( SQLDD_ROWSET_INIT * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xgrab( SQLDD_ROWSET_INIT * sizeof( HB_BYTE ) );
pArea->pRow = ( void ** ) hb_xgrab( SQLDD_ROWSET_INIT * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xgrab( SQLDD_ROWSET_INIT * sizeof( HB_BYTE ) );
memset( pArea->pRowFlags, 0, SQLDD_ROWSET_INIT * sizeof( HB_BYTE ) );
pArea->ulRecMax = SQLDD_ROWSET_INIT;
pArea->ulRecMax = SQLDD_ROWSET_INIT;
*pArea->pRow = pItemEof;
pArea->pRowFlags[ 0 ] = SQLDD_FLAG_CACHED;
*pArea->pRow = pItemEof;
pArea->pRowFlags[ 0 ] = SQLDD_FLAG_CACHED;
return HB_SUCCESS;
}
@@ -430,8 +432,8 @@ static HB_ERRCODE fbOpen( SQLBASEAREAP pArea )
static HB_ERRCODE fbClose( SQLBASEAREAP pArea )
{
SDDDATA * pSDDData = ( SDDDATA * ) pArea->pSDDData;
ISC_STATUS_ARRAY status;
SDDDATA * pSDDData = ( SDDDATA * ) pArea->pSDDData;
ISC_STATUS_ARRAY status;
if( pSDDData )
{
@@ -456,18 +458,18 @@ static HB_ERRCODE fbClose( SQLBASEAREAP pArea )
static HB_ERRCODE fbGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
{
SDDDATA * pSDDData = ( SDDDATA * ) pArea->pSDDData;
ISC_STATUS_ARRAY status;
XSQLVAR * pVar;
PHB_ITEM pItem, pArray;
HB_USHORT ui;
ISC_STATUS lErr;
short iType;
SDDDATA * pSDDData = ( SDDDATA * ) pArea->pSDDData;
ISC_STATUS_ARRAY status;
XSQLVAR * pVar;
PHB_ITEM pItem, pArray;
HB_USHORT ui;
ISC_STATUS lErr;
short iType;
while( ulRecNo > pArea->ulRecCount && ! pArea->fFetched )
{
isc_stmt_handle * phStmt = &pSDDData->hStmt;
isc_tr_handle * phTr = &pSDDData->hTrans;
isc_stmt_handle * phStmt = &pSDDData->hStmt;
isc_tr_handle * phTr = &pSDDData->hTrans;
lErr = isc_dsql_fetch( status, phStmt, SQL_DIALECT_V5, pSDDData->pSqlda );
@@ -477,7 +479,7 @@ static HB_ERRCODE fbGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
for( ui = 1; ui <= pArea->area.uiFieldCount; ui++ )
{
pVar = ( XSQLVAR * ) pSDDData->pSqlda;
pVar += ( ui - 1 );
pVar += ( ui - 1 );
if( ( pVar->sqltype & 1 ) && ( *pVar->sqlind < 0 ) )
continue; /* NIL value */
@@ -519,14 +521,14 @@ static HB_ERRCODE fbGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
if( pArea->ulRecCount + 1 <= pArea->ulRecMax )
{
pArea->pRow = ( void ** ) hb_xrealloc( pArea->pRow, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xrealloc( pArea->pRowFlags, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( HB_BYTE ) );
pArea->ulRecMax += SQLDD_ROWSET_RESIZE;
pArea->pRow = ( void ** ) hb_xrealloc( pArea->pRow, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xrealloc( pArea->pRowFlags, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( HB_BYTE ) );
pArea->ulRecMax += SQLDD_ROWSET_RESIZE;
}
pArea->ulRecCount++;
pArea->pRow[ pArea->ulRecCount ] = pArray;
pArea->pRowFlags[ pArea->ulRecCount ] = SQLDD_FLAG_CACHED;
pArea->pRow[ pArea->ulRecCount ] = pArray;
pArea->pRowFlags[ pArea->ulRecCount ] = SQLDD_FLAG_CACHED;
}
else if( lErr == 100L )
{
@@ -543,10 +545,10 @@ static HB_ERRCODE fbGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
hb_errRT_FireBirdDD( EG_OPEN, ESQLDD_COMMIT, "Transaction commit error", NULL, ( HB_ERRCODE ) isc_sqlcode( status ) );
return HB_FAILURE;
}
pSDDData->hTrans = ( isc_tr_handle ) 0;
pSDDData->hTrans = ( isc_tr_handle ) 0;
hb_xfree( pSDDData->pSqlda ); /* TODO: free is more complex */
pSDDData->pSqlda = NULL;
pSDDData->pSqlda = NULL;
}
else
@@ -558,15 +560,15 @@ static HB_ERRCODE fbGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
if( ulRecNo == 0 || ulRecNo > pArea->ulRecCount )
{
pArea->pRecord = pArea->pRow[ 0 ];
pArea->bRecordFlags = pArea->pRowFlags[ 0 ];
pArea->fPositioned = HB_FALSE;
pArea->pRecord = pArea->pRow[ 0 ];
pArea->bRecordFlags = pArea->pRowFlags[ 0 ];
pArea->fPositioned = HB_FALSE;
}
else
{
pArea->pRecord = pArea->pRow[ ulRecNo ];
pArea->bRecordFlags = pArea->pRowFlags[ ulRecNo ];
pArea->fPositioned = HB_TRUE;
pArea->pRecord = pArea->pRow[ ulRecNo ];
pArea->bRecordFlags = pArea->pRowFlags[ ulRecNo ];
pArea->fPositioned = HB_TRUE;
}
return HB_SUCCESS;
}

View File

@@ -63,7 +63,7 @@ typedef int my_socket;
#include "mysql.h"
#ifndef MYSQL_TYPE_NEWDECIMAL
#define MYSQL_TYPE_NEWDECIMAL 246
#define MYSQL_TYPE_NEWDECIMAL 246
#endif
@@ -74,8 +74,8 @@ typedef struct
typedef struct
{
MYSQL_RES * pResult;
MYSQL_ROW pNatRecord;
MYSQL_RES * pResult;
MYSQL_ROW pNatRecord;
unsigned long * pNatLength;
} SDDDATA;
@@ -119,7 +119,9 @@ static void hb_mysqldd_init( void * cargo )
HB_FUNC_TRANSLATE( SDDMY, SQLBASE )
HB_INIT_SYMBOLS_BEGIN( mysqldd__InitSymbols )
{ "SDDMY", { HB_FS_PUBLIC }, { HB_FUNCNAME( SDDMY ) }, NULL },
{
"SDDMY", { HB_FS_PUBLIC }, { HB_FUNCNAME( SDDMY ) }, NULL
},
HB_INIT_SYMBOLS_END( mysqldd__InitSymbols )
HB_CALL_ON_STARTUP_BEGIN( _hb_mysqldd_init_ )
@@ -130,7 +132,7 @@ HB_CALL_ON_STARTUP_END( _hb_mysqldd_init_ )
#pragma startup mysqldd__InitSymbols
#pragma startup _hb_mysqldd_init_
#elif defined( HB_DATASEG_STARTUP )
#define HB_DATASEG_BODY HB_DATASEG_FUNC( mysqldd__InitSymbols ) \
#define HB_DATASEG_BODY HB_DATASEG_FUNC( mysqldd__InitSymbols ) \
HB_DATASEG_FUNC( _hb_mysqldd_init_ )
#include "hbiniseg.h"
#endif
@@ -139,8 +141,8 @@ HB_CALL_ON_STARTUP_END( _hb_mysqldd_init_ )
/*=====================================================================================*/
static HB_USHORT hb_errRT_MySQLDD( HB_ERRCODE errGenCode, HB_ERRCODE errSubCode, const char * szDescription, const char * szOperation, HB_ERRCODE errOsCode )
{
HB_USHORT uiAction;
PHB_ITEM pError;
HB_USHORT uiAction;
PHB_ITEM pError;
pError = hb_errRT_New( ES_ERROR, "SDDMY", errGenCode, errSubCode, szDescription, szOperation, errOsCode, EF_NONE );
uiAction = hb_errLaunch( pError );
@@ -169,7 +171,7 @@ static HB_ERRCODE mysqlConnect( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
mysql_close( pMySql );
return HB_FAILURE;
}
pConnection->pSDDConn = hb_xgrab( sizeof( SDDCONN ) );
pConnection->pSDDConn = hb_xgrab( sizeof( SDDCONN ) );
( ( SDDCONN * ) pConnection->pSDDConn )->pMySql = pMySql;
return HB_SUCCESS;
}
@@ -185,10 +187,10 @@ static HB_ERRCODE mysqlDisconnect( SQLDDCONNECTION * pConnection )
static HB_ERRCODE mysqlExecute( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
{
MYSQL * pMySql = ( ( SDDCONN * ) pConnection->pSDDConn )->pMySql;
MYSQL * pMySql = ( ( SDDCONN * ) pConnection->pSDDConn )->pMySql;
MYSQL_RES * pResult;
HB_ULONG ulAffectedRows;
PHB_ITEM pNewID = NULL;
PHB_ITEM pNewID = NULL;
if( mysql_real_query( pMySql, hb_itemGetCPtr( pItem ), ( unsigned long ) hb_itemGetCLen( pItem ) ) )
{
@@ -228,19 +230,19 @@ static HB_ERRCODE mysqlExecute( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
static HB_ERRCODE mysqlOpen( SQLBASEAREAP pArea )
{
MYSQL * pMySql = ( ( SDDCONN * ) pArea->pConnection->pSDDConn )->pMySql;
SDDDATA * pSDDData;
PHB_ITEM pItemEof, pItem;
HB_ULONG ulIndex;
HB_USHORT uiFields, uiCount;
HB_ERRCODE errCode = 0;
HB_BOOL bError;
DBFIELDINFO pFieldInfo;
MYSQL_FIELD * pMyField;
void ** pRow;
MYSQL * pMySql = ( ( SDDCONN * ) pArea->pConnection->pSDDConn )->pMySql;
SDDDATA * pSDDData;
PHB_ITEM pItemEof, pItem;
HB_ULONG ulIndex;
HB_USHORT uiFields, uiCount;
HB_ERRCODE errCode = 0;
HB_BOOL bError;
DBFIELDINFO pFieldInfo;
MYSQL_FIELD * pMyField;
void ** pRow;
pArea->pSDDData = memset( hb_xgrab( sizeof( SDDDATA ) ), 0, sizeof( SDDDATA ) );
pSDDData = ( SDDDATA * ) pArea->pSDDData;
pArea->pSDDData = memset( hb_xgrab( sizeof( SDDDATA ) ), 0, sizeof( SDDDATA ) );
pSDDData = ( SDDDATA * ) pArea->pSDDData;
if( mysql_real_query( pMySql, pArea->szQuery, ( unsigned long ) strlen( pArea->szQuery ) ) )
{
@@ -261,14 +263,14 @@ static HB_ERRCODE mysqlOpen( SQLBASEAREAP pArea )
pItemEof = hb_itemArrayNew( uiFields );
bError = HB_FALSE;
bError = HB_FALSE;
for( uiCount = 0; uiCount < uiFields; uiCount++ )
{
pMyField = mysql_fetch_field_direct( pSDDData->pResult, uiCount );
pMyField = mysql_fetch_field_direct( pSDDData->pResult, uiCount );
pFieldInfo.atomName = pMyField->name;
pFieldInfo.uiLen = ( HB_USHORT ) pMyField->length;
pFieldInfo.uiDec = 0;
pFieldInfo.atomName = pMyField->name;
pFieldInfo.uiLen = ( HB_USHORT ) pMyField->length;
pFieldInfo.uiDec = 0;
switch( pMyField->type )
{
@@ -327,8 +329,8 @@ static HB_ERRCODE mysqlOpen( SQLBASEAREAP pArea )
*/
default:
bError = HB_TRUE;
errCode = ( HB_ERRCODE ) pMyField->type;
bError = HB_TRUE;
errCode = ( HB_ERRCODE ) pMyField->type;
pFieldInfo.uiType = 0;
break;
}
@@ -341,11 +343,11 @@ static HB_ERRCODE mysqlOpen( SQLBASEAREAP pArea )
{
char * pStr;
pStr = ( char * ) hb_xgrab( pFieldInfo.uiLen + 1 );
pStr = ( char * ) hb_xgrab( pFieldInfo.uiLen + 1 );
memset( pStr, ' ', pFieldInfo.uiLen );
pStr[ pFieldInfo.uiLen ] = '\0';
pStr[ pFieldInfo.uiLen ] = '\0';
pItem = hb_itemPutCL( NULL, pStr, pFieldInfo.uiLen );
pItem = hb_itemPutCL( NULL, pStr, pFieldInfo.uiLen );
hb_xfree( pStr );
break;
}
@@ -376,8 +378,8 @@ static HB_ERRCODE mysqlOpen( SQLBASEAREAP pArea )
break;
default:
pItem = hb_itemNew( NULL );
bError = HB_TRUE;
pItem = hb_itemNew( NULL );
bError = HB_TRUE;
break;
}
@@ -405,17 +407,17 @@ static HB_ERRCODE mysqlOpen( SQLBASEAREAP pArea )
return HB_FAILURE;
}
pArea->ulRecCount = ( HB_ULONG ) mysql_num_rows( pSDDData->pResult );
pArea->ulRecCount = ( HB_ULONG ) mysql_num_rows( pSDDData->pResult );
pArea->pRow = ( void ** ) hb_xgrab( ( pArea->ulRecCount + 1 ) * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xgrab( ( pArea->ulRecCount + 1 ) * sizeof( HB_BYTE ) );
pArea->pRow = ( void ** ) hb_xgrab( ( pArea->ulRecCount + 1 ) * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xgrab( ( pArea->ulRecCount + 1 ) * sizeof( HB_BYTE ) );
memset( pArea->pRowFlags, 0, ( pArea->ulRecCount + 1 ) * sizeof( HB_BYTE ) );
pArea->ulRecMax = pArea->ulRecCount + 1;
pArea->ulRecMax = pArea->ulRecCount + 1;
pRow = pArea->pRow;
pRow = pArea->pRow;
*pRow = pItemEof;
pArea->pRowFlags[ 0 ] = SQLDD_FLAG_CACHED;
*pRow = pItemEof;
pArea->pRowFlags[ 0 ] = SQLDD_FLAG_CACHED;
pRow++;
for( ulIndex = 1; ulIndex <= pArea->ulRecCount; ulIndex++ )
@@ -451,15 +453,15 @@ static HB_ERRCODE mysqlGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
if( ulRecNo == 0 || ulRecNo > pArea->ulRecCount )
{
pArea->pRecord = pArea->pRow[ 0 ];
pArea->bRecordFlags = pArea->pRowFlags[ 0 ];
pArea->pRecord = pArea->pRow[ 0 ];
pArea->bRecordFlags = pArea->pRowFlags[ 0 ];
pArea->fPositioned = HB_FALSE;
pArea->fPositioned = HB_FALSE;
}
else
{
pArea->pRecord = pArea->pRow[ ulRecNo ];
pArea->bRecordFlags = pArea->pRowFlags[ ulRecNo ];
pArea->pRecord = pArea->pRow[ ulRecNo ];
pArea->bRecordFlags = pArea->pRowFlags[ ulRecNo ];
if( ! ( pArea->bRecordFlags & SQLDD_FLAG_CACHED ) )
{
@@ -476,20 +478,20 @@ static HB_ERRCODE mysqlGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
static HB_ERRCODE mysqlGetValue( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem )
{
SDDDATA * pSDDData = ( SDDDATA * ) pArea->pSDDData;
LPFIELD pField;
char * pValue;
char szBuffer[ 64 ];
HB_BOOL bError;
PHB_ITEM pError;
HB_SIZE ulLen;
SDDDATA * pSDDData = ( SDDDATA * ) pArea->pSDDData;
LPFIELD pField;
char * pValue;
char szBuffer[ 64 ];
HB_BOOL bError;
PHB_ITEM pError;
HB_SIZE ulLen;
bError = HB_FALSE;
bError = HB_FALSE;
uiIndex--;
pField = pArea->area.lpFields + uiIndex;
pField = pArea->area.lpFields + uiIndex;
pValue = pSDDData->pNatRecord[ uiIndex ];
ulLen = pSDDData->pNatLength[ uiIndex ];
pValue = pSDDData->pNatRecord[ uiIndex ];
ulLen = pSDDData->pNatLength[ uiIndex ];
/* NULL => NIL (?) */
if( ! pValue )
@@ -582,14 +584,14 @@ static HB_ERRCODE mysqlGetValue( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_ITEM
{
char szTimeStamp[ 15 ];
szTimeStamp[ 0 ] = pValue[ 0 ];
szTimeStamp[ 1 ] = pValue[ 1 ];
szTimeStamp[ 2 ] = pValue[ 2 ];
szTimeStamp[ 3 ] = pValue[ 3 ];
szTimeStamp[ 4 ] = pValue[ 5 ];
szTimeStamp[ 5 ] = pValue[ 6 ];
szTimeStamp[ 6 ] = pValue[ 8 ];
szTimeStamp[ 7 ] = pValue[ 9 ];
szTimeStamp[ 0 ] = pValue[ 0 ];
szTimeStamp[ 1 ] = pValue[ 1 ];
szTimeStamp[ 2 ] = pValue[ 2 ];
szTimeStamp[ 3 ] = pValue[ 3 ];
szTimeStamp[ 4 ] = pValue[ 5 ];
szTimeStamp[ 5 ] = pValue[ 6 ];
szTimeStamp[ 6 ] = pValue[ 8 ];
szTimeStamp[ 7 ] = pValue[ 9 ];
szTimeStamp[ 8 ] = pValue[ 11 ];
szTimeStamp[ 9 ] = pValue[ 12 ];
@@ -606,14 +608,14 @@ static HB_ERRCODE mysqlGetValue( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_ITEM
{
char szTimeStamp[ 15 ];
szTimeStamp[ 0 ] = '0';
szTimeStamp[ 1 ] = '0';
szTimeStamp[ 2 ] = '0';
szTimeStamp[ 3 ] = '0';
szTimeStamp[ 4 ] = '0';
szTimeStamp[ 5 ] = '0';
szTimeStamp[ 6 ] = '0';
szTimeStamp[ 7 ] = '0';
szTimeStamp[ 0 ] = '0';
szTimeStamp[ 1 ] = '0';
szTimeStamp[ 2 ] = '0';
szTimeStamp[ 3 ] = '0';
szTimeStamp[ 4 ] = '0';
szTimeStamp[ 5 ] = '0';
szTimeStamp[ 6 ] = '0';
szTimeStamp[ 7 ] = '0';
szTimeStamp[ 8 ] = pValue[ 0 ];
szTimeStamp[ 9 ] = pValue[ 1 ];

View File

@@ -63,35 +63,35 @@
#include <ocilib.h>
#if defined( OCI_CHARSET_UNICODE ) || defined( OCI_CHARSET_WIDE )
#define M_HB_ARRAYGETSTR( arr, n, phstr, plen ) hb_arrayGetStrU16( arr, n, HB_CDP_ENDIAN_NATIVE, phstr, plen )
#define M_HB_ITEMCOPYSTR( itm, str, len ) hb_itemCopyStrU16( itm, HB_CDP_ENDIAN_NATIVE, str, len )
#define M_HB_ITEMGETSTR( itm, phstr, plen ) hb_itemGetStrU16( itm, HB_CDP_ENDIAN_NATIVE, phstr, plen )
#define M_HB_ITEMPUTSTR( itm, str ) hb_itemPutStrU16( itm, HB_CDP_ENDIAN_NATIVE, str )
#define M_HB_ITEMPUTSTRLEN( itm, str, len ) hb_itemPutStrLenU16( itm, HB_CDP_ENDIAN_NATIVE, str, len )
#define M_HB_CHAR HB_WCHAR
#define M_HB_ARRAYGETSTR( arr, n, phstr, plen ) hb_arrayGetStrU16( arr, n, HB_CDP_ENDIAN_NATIVE, phstr, plen )
#define M_HB_ITEMCOPYSTR( itm, str, len ) hb_itemCopyStrU16( itm, HB_CDP_ENDIAN_NATIVE, str, len )
#define M_HB_ITEMGETSTR( itm, phstr, plen ) hb_itemGetStrU16( itm, HB_CDP_ENDIAN_NATIVE, phstr, plen )
#define M_HB_ITEMPUTSTR( itm, str ) hb_itemPutStrU16( itm, HB_CDP_ENDIAN_NATIVE, str )
#define M_HB_ITEMPUTSTRLEN( itm, str, len ) hb_itemPutStrLenU16( itm, HB_CDP_ENDIAN_NATIVE, str, len )
#define M_HB_CHAR HB_WCHAR
#else
#define M_HB_ARRAYGETSTR( arr, n, phstr, plen ) hb_arrayGetStr( arr, n, hb_setGetOSCP(), phstr, plen )
#define M_HB_ITEMCOPYSTR( itm, str, len ) hb_itemCopyStr( itm, hb_setGetOSCP(), str, len )
#define M_HB_ITEMGETSTR( itm, phstr, plen ) hb_itemGetStr( itm, hb_setGetOSCP(), phstr, plen )
#define M_HB_ITEMPUTSTR( itm, str ) hb_itemPutStr( itm, hb_setGetOSCP(), str )
#define M_HB_ITEMPUTSTRLEN( itm, str, len ) hb_itemPutStrLen( itm, hb_setGetOSCP(), str, len )
#define M_HB_CHAR char
#define M_HB_ARRAYGETSTR( arr, n, phstr, plen ) hb_arrayGetStr( arr, n, hb_setGetOSCP(), phstr, plen )
#define M_HB_ITEMCOPYSTR( itm, str, len ) hb_itemCopyStr( itm, hb_setGetOSCP(), str, len )
#define M_HB_ITEMGETSTR( itm, phstr, plen ) hb_itemGetStr( itm, hb_setGetOSCP(), phstr, plen )
#define M_HB_ITEMPUTSTR( itm, str ) hb_itemPutStr( itm, hb_setGetOSCP(), str )
#define M_HB_ITEMPUTSTRLEN( itm, str, len ) hb_itemPutStrLen( itm, hb_setGetOSCP(), str, len )
#define M_HB_CHAR char
#endif
#if defined( OCI_CHARSET_UNICODE ) || defined( OCI_CHARSET_WIDE ) || defined( OCI_CHARSET_MIXED )
#define D_HB_ARRAYGETSTR( arr, n, phstr, plen ) hb_arrayGetStrU16( arr, n, HB_CDP_ENDIAN_NATIVE, phstr, plen )
#define D_HB_ITEMCOPYSTR( itm, str, len ) hb_itemCopyStrU16( itm, HB_CDP_ENDIAN_NATIVE, str, len )
#define D_HB_ITEMGETSTR( itm, phstr, plen ) hb_itemGetStrU16( itm, HB_CDP_ENDIAN_NATIVE, phstr, plen )
#define D_HB_ITEMPUTSTR( itm, str ) hb_itemPutStrU16( itm, HB_CDP_ENDIAN_NATIVE, str )
#define D_HB_ITEMPUTSTRLEN( itm, str, len ) hb_itemPutStrLenU16( itm, HB_CDP_ENDIAN_NATIVE, str, len )
#define D_HB_CHAR HB_WCHAR
#define D_HB_ARRAYGETSTR( arr, n, phstr, plen ) hb_arrayGetStrU16( arr, n, HB_CDP_ENDIAN_NATIVE, phstr, plen )
#define D_HB_ITEMCOPYSTR( itm, str, len ) hb_itemCopyStrU16( itm, HB_CDP_ENDIAN_NATIVE, str, len )
#define D_HB_ITEMGETSTR( itm, phstr, plen ) hb_itemGetStrU16( itm, HB_CDP_ENDIAN_NATIVE, phstr, plen )
#define D_HB_ITEMPUTSTR( itm, str ) hb_itemPutStrU16( itm, HB_CDP_ENDIAN_NATIVE, str )
#define D_HB_ITEMPUTSTRLEN( itm, str, len ) hb_itemPutStrLenU16( itm, HB_CDP_ENDIAN_NATIVE, str, len )
#define D_HB_CHAR HB_WCHAR
#else
#define D_HB_ARRAYGETSTR( arr, n, phstr, plen ) hb_arrayGetStr( arr, n, hb_setGetOSCP(), phstr, plen )
#define D_HB_ITEMCOPYSTR( itm, str, len ) hb_itemCopyStr( itm, hb_setGetOSCP(), str, len )
#define D_HB_ITEMGETSTR( itm, phstr, plen ) hb_itemGetStr( itm, hb_setGetOSCP(), phstr, plen )
#define D_HB_ITEMPUTSTR( itm, str ) hb_itemPutStr( itm, hb_setGetOSCP(), str )
#define D_HB_ITEMPUTSTRLEN( itm, str, len ) hb_itemPutStrLen( itm, hb_setGetOSCP(), str, len )
#define D_HB_CHAR char
#define D_HB_ARRAYGETSTR( arr, n, phstr, plen ) hb_arrayGetStr( arr, n, hb_setGetOSCP(), phstr, plen )
#define D_HB_ITEMCOPYSTR( itm, str, len ) hb_itemCopyStr( itm, hb_setGetOSCP(), str, len )
#define D_HB_ITEMGETSTR( itm, phstr, plen ) hb_itemGetStr( itm, hb_setGetOSCP(), phstr, plen )
#define D_HB_ITEMPUTSTR( itm, str ) hb_itemPutStr( itm, hb_setGetOSCP(), str )
#define D_HB_ITEMPUTSTRLEN( itm, str, len ) hb_itemPutStrLen( itm, hb_setGetOSCP(), str, len )
#define D_HB_CHAR char
#endif
@@ -118,14 +118,14 @@ static SDDNODE ocidd =
{
NULL,
"OCILIB",
( SDDFUNC_CONNECT ) ocilibConnect,
( SDDFUNC_CONNECT ) ocilibConnect,
( SDDFUNC_DISCONNECT ) ocilibDisconnect,
( SDDFUNC_EXECUTE ) ocilibExecute,
( SDDFUNC_OPEN ) ocilibOpen,
( SDDFUNC_CLOSE ) ocilibClose,
( SDDFUNC_GOTO ) ocilibGoTo,
( SDDFUNC_GETVALUE ) NULL,
( SDDFUNC_GETVARLEN ) NULL
( SDDFUNC_EXECUTE ) ocilibExecute,
( SDDFUNC_OPEN ) ocilibOpen,
( SDDFUNC_CLOSE ) ocilibClose,
( SDDFUNC_GOTO ) ocilibGoTo,
( SDDFUNC_GETVALUE ) NULL,
( SDDFUNC_GETVARLEN ) NULL
};
@@ -152,20 +152,23 @@ static void hb_ocidd_exit( void * cargo )
HB_FUNC_TRANSLATE( SDDOCI, SQLBASE )
HB_INIT_SYMBOLS_BEGIN( ocidd__InitSymbols )
{ "SDDOCI", {HB_FS_PUBLIC}, {HB_FUNCNAME( SDDOCI )}, NULL },
{
"SDDOCI", { HB_FS_PUBLIC }, { HB_FUNCNAME( SDDOCI ) }, NULL
},
HB_INIT_SYMBOLS_END( ocidd__InitSymbols )
HB_CALL_ON_STARTUP_BEGIN( _hb_ocidd_init_ )
hb_vmAtInit( hb_ocidd_init, NULL );
hb_vmAtExit( hb_ocidd_exit, NULL );
hb_vmAtInit( hb_ocidd_init, NULL );
hb_vmAtExit( hb_ocidd_exit, NULL );
HB_CALL_ON_STARTUP_END( _hb_ocidd_init_ )
#if defined( HB_PRAGMA_STARTUP )
#pragma startup ocidd__InitSymbols
#pragma startup _hb_ocidd_init_
#elif defined( HB_DATASEG_STARTUP )
#define HB_DATASEG_BODY HB_DATASEG_FUNC( ocidd__InitSymbols ) \
HB_DATASEG_FUNC( _hb_ocidd_init_ )
#define HB_DATASEG_BODY \
HB_DATASEG_FUNC( ocidd__InitSymbols ) \
HB_DATASEG_FUNC( _hb_ocidd_init_ )
#include "hbiniseg.h"
#endif
@@ -174,9 +177,9 @@ HB_CALL_ON_STARTUP_END( _hb_ocidd_init_ )
static HB_USHORT hb_errRT_OCIDD( HB_ERRCODE errGenCode, HB_ERRCODE errSubCode, const char * szDescription, const char * szOperation, HB_ERRCODE errOsCode )
{
HB_USHORT uiAction;
PHB_ITEM pError;
PHB_ITEM pError;
pError = hb_errRT_New( ES_ERROR, "SDDOCI", errGenCode, errSubCode, szDescription, szOperation, errOsCode, EF_NONE );
pError = hb_errRT_New( ES_ERROR, "SDDOCI", errGenCode, errSubCode, szDescription, szOperation, errOsCode, EF_NONE );
uiAction = hb_errLaunch( pError );
hb_itemRelease( pError );
return uiAction;
@@ -188,7 +191,7 @@ static char * ocilibGetError( HB_ERRCODE * pErrCode )
OCI_Error * err = OCI_GetLastError();
char * szRet;
int iNativeErr;
int iNativeErr;
if( err )
{
@@ -200,7 +203,7 @@ static char * ocilibGetError( HB_ERRCODE * pErrCode )
}
else
{
szRet = hb_strdup( "Unable to get error message" );
szRet = hb_strdup( "Unable to get error message" );
iNativeErr = 9999;
}
@@ -252,9 +255,9 @@ static HB_ERRCODE ocilibDisconnect( SQLDDCONNECTION * pConnection )
static HB_ERRCODE ocilibExecute( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
{
OCI_Statement * st = OCI_StatementCreate( ( ( SDDCONN * ) pConnection->pSDDConn )->pConn );
void * hStatement;
char * szError;
HB_ERRCODE errCode;
void * hStatement;
char * szError;
HB_ERRCODE errCode;
if( ! st )
{
@@ -288,16 +291,16 @@ static HB_ERRCODE ocilibOpen( SQLBASEAREAP pArea )
{
OCI_Statement * st = OCI_StatementCreate( ( ( SDDCONN * ) pArea->pConnection->pSDDConn )->pConn );
OCI_Resultset * rs;
SDDDATA * pSDDData;
void * hQuery;
HB_USHORT uiFields, uiIndex;
PHB_ITEM pItemEof, pItem;
HB_ERRCODE errCode;
char * szError;
HB_BOOL bError;
SDDDATA * pSDDData;
void * hQuery;
HB_USHORT uiFields, uiIndex;
PHB_ITEM pItemEof, pItem;
HB_ERRCODE errCode;
char * szError;
HB_BOOL bError;
pArea->pSDDData = memset( hb_xgrab( sizeof( SDDDATA ) ), 0, sizeof( SDDDATA ) );
pSDDData = ( SDDDATA * ) pArea->pSDDData;
pSDDData = ( SDDDATA * ) pArea->pSDDData;
if( ! st )
{
@@ -331,12 +334,12 @@ static HB_ERRCODE ocilibOpen( SQLBASEAREAP pArea )
SELF_SETFIELDEXTENT( ( AREAP ) pArea, uiFields );
pItemEof = hb_itemArrayNew( uiFields );
pItem = hb_itemNew( NULL );
pItem = hb_itemNew( NULL );
/* HB_TRACE( HB_TR_ALWAYS, ("fieldcount=%d", iNameLen) ); */
errCode = 0;
bError = HB_FALSE;
bError = HB_FALSE;
for( uiIndex = 0; uiIndex < uiFields; ++uiIndex )
{
DBFIELDINFO pFieldInfo;
@@ -347,8 +350,8 @@ static HB_ERRCODE ocilibOpen( SQLBASEAREAP pArea )
unsigned int uiDataType;
unsigned int uiSize;
int iDec;
HB_BOOL bNullable;
int iDec;
HB_BOOL bNullable;
if( ! col )
{
@@ -365,9 +368,9 @@ static HB_ERRCODE ocilibOpen( SQLBASEAREAP pArea )
pFieldInfo.atomName = hb_itemGetCPtr( pName );
uiDataType = OCI_ColumnGetType( col );
uiSize = OCI_ColumnGetSize( col );
iDec = OCI_ColumnGetPrecision( col );
bNullable = ( HB_BOOL ) OCI_ColumnGetNullable( col );
uiSize = OCI_ColumnGetSize( col );
iDec = OCI_ColumnGetPrecision( col );
bNullable = ( HB_BOOL ) OCI_ColumnGetNullable( col );
if( bNullable )
pFieldInfo.uiFlags |= HB_FF_NULLABLE;
@@ -410,7 +413,7 @@ static HB_ERRCODE ocilibOpen( SQLBASEAREAP pArea )
default:
/* HB_TRACE( HB_TR_ALWAYS, ("new sql type=%d", uiDataType) ); */
bError = HB_TRUE;
bError = HB_TRUE;
errCode = ( HB_ERRCODE ) uiDataType;
pFieldInfo.uiType = 0;
pFieldInfo.uiType = HB_FT_STRING;
@@ -492,14 +495,14 @@ static HB_ERRCODE ocilibOpen( SQLBASEAREAP pArea )
}
pArea->ulRecCount = 0;
pArea->ulRecMax = SQLDD_ROWSET_INIT;
pArea->ulRecMax = SQLDD_ROWSET_INIT;
pArea->pRow = ( void ** ) hb_xgrab( SQLDD_ROWSET_INIT * sizeof( void * ) );
memset( pArea->pRow, 0, SQLDD_ROWSET_INIT * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xgrab( SQLDD_ROWSET_INIT * sizeof( HB_BYTE ) );
memset( pArea->pRowFlags, 0, SQLDD_ROWSET_INIT * sizeof( HB_BYTE ) );
pArea->pRow[ 0 ] = pItemEof;
pArea->pRow[ 0 ] = pItemEof;
pArea->pRowFlags[ 0 ] = SQLDD_FLAG_CACHED;
pSDDData->pStmt = st;
@@ -530,7 +533,7 @@ static HB_ERRCODE ocilibGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
while( ulRecNo > pArea->ulRecCount && ! pArea->fFetched )
{
PHB_ITEM pArray;
PHB_ITEM pArray;
HB_USHORT ui;
if( ! OCI_FetchNext( rs ) )
@@ -543,8 +546,8 @@ static HB_ERRCODE ocilibGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
for( ui = 1; ui <= pArea->area.uiFieldCount; ++ui )
{
PHB_ITEM pItem = NULL;
LPFIELD pField = pArea->area.lpFields + ui - 1;
PHB_ITEM pItem = NULL;
LPFIELD pField = pArea->area.lpFields + ui - 1;
switch( pField->uiType )
{
@@ -561,7 +564,7 @@ static HB_ERRCODE ocilibGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
{
const dtext * val;
if( ( val = OCI_GetString( rs, ui ) ) != NULL )
pItem = D_HB_ITEMPUTSTRLEN( NULL, val, ( HB_SIZE ) dtslen( val ) ); /* TODO: Pad it to pField->uiLen size with spaces? */
pItem = D_HB_ITEMPUTSTRLEN( NULL, val, ( HB_SIZE ) dtslen( val ) ); /* TODO: Pad it to pField->uiLen size with spaces? */
}
break;
@@ -606,15 +609,14 @@ static HB_ERRCODE ocilibGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
case HB_FT_CURDOUBLE:
case HB_FT_FLOAT:
case HB_FT_DOUBLE:
{
pItem = hb_itemPutNDLen( NULL, OCI_GetDouble( rs, ui ), pField->uiLen, pField->uiDec );
break;
}
case HB_FT_DATE:
{
OCI_Date * date = OCI_GetDate( rs, ui );
int iYear, iMonth, iDay;
int iYear, iMonth, iDay;
if( date && OCI_DateGetDate( date, &iYear, &iMonth, &iDay ) )
pItem = hb_itemPutD( NULL, iYear, iMonth, iDay );
break;
@@ -623,7 +625,7 @@ static HB_ERRCODE ocilibGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
case HB_FT_TIME:
{
OCI_Date * date = OCI_GetDate( rs, ui );
int iYear, iMonth, iDay, iHour, iMin, iSec;
int iYear, iMonth, iDay, iHour, iMin, iSec;
if( date && OCI_DateGetDateTime( date, &iYear, &iMonth, &iDay, &iHour, &iMin, &iSec ) )
pItem = hb_itemPutTDT( NULL, hb_dateEncode( iYear, iMonth, iDay ),
@@ -650,27 +652,27 @@ static HB_ERRCODE ocilibGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
}
if( pArea->ulRecCount + 1 <= pArea->ulRecMax )
{
pArea->pRow = ( void ** ) hb_xrealloc( pArea->pRow, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( void * ) );
pArea->pRow = ( void ** ) hb_xrealloc( pArea->pRow, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xrealloc( pArea->pRowFlags, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( HB_BYTE ) );
pArea->ulRecMax += SQLDD_ROWSET_RESIZE;
}
pArea->ulRecCount++;
pArea->pRow[ pArea->ulRecCount ] = pArray;
pArea->pRow[ pArea->ulRecCount ] = pArray;
pArea->pRowFlags[ pArea->ulRecCount ] = SQLDD_FLAG_CACHED;
}
if( ulRecNo == 0 || ulRecNo > pArea->ulRecCount )
{
pArea->pRecord = pArea->pRow[ 0 ];
pArea->pRecord = pArea->pRow[ 0 ];
pArea->bRecordFlags = pArea->pRowFlags[ 0 ];
pArea->fPositioned = HB_FALSE;
pArea->fPositioned = HB_FALSE;
}
else
{
pArea->pRecord = pArea->pRow[ ulRecNo ];
pArea->pRecord = pArea->pRow[ ulRecNo ];
pArea->bRecordFlags = pArea->pRowFlags[ ulRecNo ];
pArea->fPositioned = HB_TRUE;
pArea->fPositioned = HB_TRUE;
}
return HB_SUCCESS;
}

View File

@@ -77,19 +77,19 @@ typedef unsigned char SQLTCHAR;
#endif
#if defined( UNICODE )
#define O_HB_ARRAYGETSTR( arr, n, phstr, plen ) hb_arrayGetStrU16( arr, n, HB_CDP_ENDIAN_NATIVE, phstr, plen )
#define O_HB_ITEMCOPYSTR( itm, str, len ) hb_itemCopyStrU16( itm, HB_CDP_ENDIAN_NATIVE, str, len )
#define O_HB_ITEMGETSTR( itm, phstr, plen ) hb_itemGetStrU16( itm, HB_CDP_ENDIAN_NATIVE, phstr, plen )
#define O_HB_ITEMPUTSTR( itm, str ) hb_itemPutStrU16( itm, HB_CDP_ENDIAN_NATIVE, str )
#define O_HB_ITEMPUTSTRLEN( itm, str, len ) hb_itemPutStrLenU16( itm, HB_CDP_ENDIAN_NATIVE, str, len )
#define O_HB_CHAR HB_WCHAR
#define O_HB_ARRAYGETSTR( arr, n, phstr, plen ) hb_arrayGetStrU16( arr, n, HB_CDP_ENDIAN_NATIVE, phstr, plen )
#define O_HB_ITEMCOPYSTR( itm, str, len ) hb_itemCopyStrU16( itm, HB_CDP_ENDIAN_NATIVE, str, len )
#define O_HB_ITEMGETSTR( itm, phstr, plen ) hb_itemGetStrU16( itm, HB_CDP_ENDIAN_NATIVE, phstr, plen )
#define O_HB_ITEMPUTSTR( itm, str ) hb_itemPutStrU16( itm, HB_CDP_ENDIAN_NATIVE, str )
#define O_HB_ITEMPUTSTRLEN( itm, str, len ) hb_itemPutStrLenU16( itm, HB_CDP_ENDIAN_NATIVE, str, len )
#define O_HB_CHAR HB_WCHAR
#else
#define O_HB_ARRAYGETSTR( arr, n, phstr, plen ) hb_arrayGetStr( arr, n, hb_setGetOSCP(), phstr, plen )
#define O_HB_ITEMCOPYSTR( itm, str, len ) hb_itemCopyStr( itm, hb_setGetOSCP(), str, len )
#define O_HB_ITEMGETSTR( itm, phstr, plen ) hb_itemGetStr( itm, hb_setGetOSCP(), phstr, plen )
#define O_HB_ITEMPUTSTR( itm, str ) hb_itemPutStr( itm, hb_setGetOSCP(), str )
#define O_HB_ITEMPUTSTRLEN( itm, str, len ) hb_itemPutStrLen( itm, hb_setGetOSCP(), str, len )
#define O_HB_CHAR char
#define O_HB_ARRAYGETSTR( arr, n, phstr, plen ) hb_arrayGetStr( arr, n, hb_setGetOSCP(), phstr, plen )
#define O_HB_ITEMCOPYSTR( itm, str, len ) hb_itemCopyStr( itm, hb_setGetOSCP(), str, len )
#define O_HB_ITEMGETSTR( itm, phstr, plen ) hb_itemGetStr( itm, hb_setGetOSCP(), phstr, plen )
#define O_HB_ITEMPUTSTR( itm, str ) hb_itemPutStr( itm, hb_setGetOSCP(), str )
#define O_HB_ITEMPUTSTRLEN( itm, str, len ) hb_itemPutStrLen( itm, hb_setGetOSCP(), str, len )
#define O_HB_CHAR char
#endif
@@ -141,7 +141,9 @@ static void hb_odbcdd_init( void * cargo )
HB_FUNC_TRANSLATE( SDDODBC, SQLBASE )
HB_INIT_SYMBOLS_BEGIN( odbcdd__InitSymbols )
{ "SDDODBC", { HB_FS_PUBLIC }, { HB_FUNCNAME( SDDODBC ) }, NULL },
{
"SDDODBC", { HB_FS_PUBLIC }, { HB_FUNCNAME( SDDODBC ) }, NULL
},
HB_INIT_SYMBOLS_END( odbcdd__InitSymbols )
HB_CALL_ON_STARTUP_BEGIN( _hb_odbcdd_init_ )
@@ -152,7 +154,8 @@ HB_CALL_ON_STARTUP_END( _hb_odbcdd_init_ )
#pragma startup odbcdd__InitSymbols
#pragma startup _hb_odbcdd_init_
#elif defined( HB_DATASEG_STARTUP )
#define HB_DATASEG_BODY HB_DATASEG_FUNC( odbcdd__InitSymbols ) \
#define HB_DATASEG_BODY \
HB_DATASEG_FUNC( odbcdd__InitSymbols ) \
HB_DATASEG_FUNC( _hb_odbcdd_init_ )
#include "hbiniseg.h"
#endif
@@ -161,8 +164,8 @@ HB_CALL_ON_STARTUP_END( _hb_odbcdd_init_ )
/*=====================================================================================*/
static HB_USHORT hb_errRT_ODBCDD( HB_ERRCODE errGenCode, HB_ERRCODE errSubCode, const char * szDescription, const char * szOperation, HB_ERRCODE errOsCode )
{
HB_USHORT uiAction;
PHB_ITEM pError;
HB_USHORT uiAction;
PHB_ITEM pError;
pError = hb_errRT_New( ES_ERROR, "SDDODBC", errGenCode, errSubCode, szDescription, szOperation, errOsCode, EF_NONE );
uiAction = hb_errLaunch( pError );
@@ -182,10 +185,10 @@ static char * odbcGetError( SQLHENV hEnv, SQLHDBC hConn, SQLHSTMT hStmt, HB_ERRC
{
PHB_ITEM pRet;
szError[ 5 ] = ' ';
szError[ 5 ] = ' ';
pRet = O_HB_ITEMPUTSTR( NULL, ( O_HB_CHAR * ) szError );
szRet = hb_strdup( hb_itemGetCPtr( pRet ) );
pRet = O_HB_ITEMPUTSTR( NULL, ( O_HB_CHAR * ) szError );
szRet = hb_strdup( hb_itemGetCPtr( pRet ) );
hb_itemRelease( pRet );
}
else
@@ -201,10 +204,10 @@ static char * odbcGetError( SQLHENV hEnv, SQLHDBC hConn, SQLHSTMT hStmt, HB_ERRC
static HB_ERRCODE odbcConnect( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
{
SQLHENV hEnv = NULL;
SQLHDBC hConnect = NULL;
char * szError;
HB_ERRCODE errCode;
SQLHENV hEnv = NULL;
SQLHDBC hConnect = NULL;
char * szError;
HB_ERRCODE errCode;
if( SQL_SUCCEEDED( SQLAllocHandle( SQL_HANDLE_ENV, SQL_NULL_HANDLE, &hEnv ) ) )
{
@@ -228,9 +231,9 @@ static HB_ERRCODE odbcConnect( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
SQL_DRIVER_NOPROMPT ) ) )
{
hb_strfree( hConnStr );
pConnection->pSDDConn = hb_xgrab( sizeof( SDDCONN ) );
( ( SDDCONN * ) pConnection->pSDDConn )->hConn = hConnect;
( ( SDDCONN * ) pConnection->pSDDConn )->hEnv = hEnv;
pConnection->pSDDConn = hb_xgrab( sizeof( SDDCONN ) );
( ( SDDCONN * ) pConnection->pSDDConn )->hConn = hConnect;
( ( SDDCONN * ) pConnection->pSDDConn )->hEnv = hEnv;
return HB_SUCCESS;
}
else
@@ -274,12 +277,12 @@ static HB_ERRCODE odbcDisconnect( SQLDDCONNECTION * pConnection )
static HB_ERRCODE odbcExecute( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
{
SDDCONN * pSDDConn = ( SDDCONN * ) pConnection->pSDDConn;
void * hStatement;
SQLHSTMT hStmt;
SQLLEN iCount;
char * szError;
HB_ERRCODE errCode;
SDDCONN * pSDDConn = ( SDDCONN * ) pConnection->pSDDConn;
void * hStatement;
SQLHSTMT hStmt;
SQLLEN iCount;
char * szError;
HB_ERRCODE errCode;
if( ! SQL_SUCCEEDED( SQLAllocHandle( SQL_HANDLE_STMT, pSDDConn->hConn, &hStmt ) ) )
{
@@ -327,8 +330,8 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
HB_ERRCODE errCode;
char * szError;
pArea->pSDDData = memset( hb_xgrab( sizeof( SDDDATA ) ), 0, sizeof( SDDDATA ) );
pSDDData = ( SDDDATA * ) pArea->pSDDData;
pArea->pSDDData = memset( hb_xgrab( sizeof( SDDDATA ) ), 0, sizeof( SDDDATA ) );
pSDDData = ( SDDDATA * ) pArea->pSDDData;
if( ! SQL_SUCCEEDED( SQLAllocHandle( SQL_HANDLE_STMT, pSDDConn->hConn, &hStmt ) ) )
{
@@ -374,13 +377,13 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
/* HB_TRACE( HB_TR_ALWAYS, ("fieldcount=%d", iNameLen) ); */
errCode = 0;
bError = HB_FALSE;
errCode = 0;
bError = HB_FALSE;
for( uiIndex = 0; uiIndex < uiFields; uiIndex++ )
{
DBFIELDINFO pFieldInfo;
PHB_ITEM pName;
PHB_ITEM pName;
SQLTCHAR cName[ 256 ];
SQLULEN uiSize;
@@ -396,8 +399,8 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
return HB_FAILURE;
}
pName = O_HB_ITEMPUTSTRLEN( NULL, ( O_HB_CHAR * ) cName, iNameLen );
pFieldInfo.atomName = hb_itemGetCPtr( pName );
pName = O_HB_ITEMPUTSTRLEN( NULL, ( O_HB_CHAR * ) cName, iNameLen );
pFieldInfo.atomName = hb_itemGetCPtr( pName );
/*
We do mapping of many SQL types to one Harbour field type here, so, we need store
@@ -408,9 +411,9 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
or introduce our own unsigned SQL types.
[Mindaugas]
*/
pFieldInfo.uiTypeExtended = ( HB_USHORT ) iDataType;
pFieldInfo.uiLen = ( HB_USHORT ) uiSize;
pFieldInfo.uiDec = iDec;
pFieldInfo.uiTypeExtended = ( HB_USHORT ) iDataType;
pFieldInfo.uiLen = ( HB_USHORT ) uiSize;
pFieldInfo.uiDec = iDec;
/* HB_TRACE( HB_TR_ALWAYS, ("field: name=%s type=%d len=%d dec=%d null=%d", pFieldInfo.atomName, iDataType, uiSize, iDec, iNull ) ); */
@@ -427,8 +430,8 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
case SQL_VARBINARY:
case SQL_LONGVARBINARY:
pFieldInfo.uiType = HB_FT_STRING;
pFieldInfo.uiFlags = HB_FF_BINARY;
pFieldInfo.uiType = HB_FT_STRING;
pFieldInfo.uiFlags = HB_FF_BINARY;
break;
case SQL_TINYINT:
@@ -471,8 +474,8 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
default:
/* HB_TRACE( HB_TR_ALWAYS, ("new sql type=%d", iDataType) ); */
bError = HB_TRUE;
errCode = ( HB_ERRCODE ) iDataType;
bError = HB_TRUE;
errCode = ( HB_ERRCODE ) iDataType;
pFieldInfo.uiType = 0;
pFieldInfo.uiType = HB_FT_STRING;
break;
@@ -486,11 +489,11 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
{
char * pStr;
pStr = ( char * ) hb_xgrab( ( HB_SIZE ) pFieldInfo.uiLen + 1 );
pStr = ( char * ) hb_xgrab( ( HB_SIZE ) pFieldInfo.uiLen + 1 );
memset( pStr, ' ', pFieldInfo.uiLen );
pStr[ pFieldInfo.uiLen ] = '\0';
pStr[ pFieldInfo.uiLen ] = '\0';
pItem = hb_itemPutCL( NULL, pStr, pFieldInfo.uiLen );
pItem = hb_itemPutCL( NULL, pStr, pFieldInfo.uiLen );
hb_xfree( pStr );
break;
}
@@ -531,8 +534,8 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
break;
default:
pItem = hb_itemNew( NULL );
bError = HB_TRUE;
pItem = hb_itemNew( NULL );
bError = HB_TRUE;
break;
}
@@ -557,18 +560,18 @@ static HB_ERRCODE odbcOpen( SQLBASEAREAP pArea )
return HB_FAILURE;
}
pArea->ulRecCount = 0;
pArea->ulRecMax = SQLDD_ROWSET_INIT;
pArea->ulRecCount = 0;
pArea->ulRecMax = SQLDD_ROWSET_INIT;
pArea->pRow = ( void ** ) hb_xgrab( SQLDD_ROWSET_INIT * sizeof( void * ) );
pArea->pRow = ( void ** ) hb_xgrab( SQLDD_ROWSET_INIT * sizeof( void * ) );
memset( pArea->pRow, 0, SQLDD_ROWSET_INIT * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xgrab( SQLDD_ROWSET_INIT * sizeof( HB_BYTE ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xgrab( SQLDD_ROWSET_INIT * sizeof( HB_BYTE ) );
memset( pArea->pRowFlags, 0, SQLDD_ROWSET_INIT * sizeof( HB_BYTE ) );
pArea->pRow[ 0 ] = pItemEof;
pArea->pRowFlags[ 0 ] = SQLDD_FLAG_CACHED;
pArea->pRow[ 0 ] = pItemEof;
pArea->pRowFlags[ 0 ] = SQLDD_FLAG_CACHED;
pSDDData->hStmt = hStmt;
pSDDData->hStmt = hStmt;
return HB_SUCCESS;
}
@@ -591,12 +594,12 @@ static HB_ERRCODE odbcClose( SQLBASEAREAP pArea )
static HB_ERRCODE odbcGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
{
SQLHSTMT hStmt = ( ( SDDDATA * ) pArea->pSDDData )->hStmt;
SQLRETURN res;
SQLLEN iLen;
PHB_ITEM pArray, pItem;
LPFIELD pField;
HB_USHORT ui;
SQLHSTMT hStmt = ( ( SDDDATA * ) pArea->pSDDData )->hStmt;
SQLRETURN res;
SQLLEN iLen;
PHB_ITEM pArray, pItem;
LPFIELD pField;
HB_USHORT ui;
while( ulRecNo > pArea->ulRecCount && ! pArea->fFetched )
{
@@ -609,10 +612,10 @@ static HB_ERRCODE odbcGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
pArray = hb_itemArrayNew( pArea->area.uiFieldCount );
for( ui = 1; ui <= pArea->area.uiFieldCount; ui++ )
{
iLen = SQL_NULL_DATA;
pItem = NULL;
res = 0;
pField = pArea->area.lpFields + ui - 1;
iLen = SQL_NULL_DATA;
pItem = NULL;
res = 0;
pField = pArea->area.lpFields + ui - 1;
switch( pField->uiType )
{
case HB_FT_STRING:
@@ -620,7 +623,7 @@ static HB_ERRCODE odbcGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
SQLSMALLINT iTargetType;
char buffer[ 2 ];
iLen = 0;
iLen = 0;
#if defined( UNICODE )
iTargetType = SQL_C_WCHAR;
@@ -636,7 +639,7 @@ static HB_ERRCODE odbcGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
if( SQL_SUCCEEDED( res = SQLGetData( hStmt, ui, iTargetType, val, iLen + sizeof( O_HB_CHAR ), &iLen ) ) )
{
#if defined( UNICODE )
iLen /= 2;
iLen /= 2;
#endif
pItem = O_HB_ITEMPUTSTRLEN( NULL, ( O_HB_CHAR * ) val, ( HB_SIZE ) iLen );
}
@@ -755,27 +758,27 @@ static HB_ERRCODE odbcGoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
}
if( pArea->ulRecCount + 1 <= pArea->ulRecMax )
{
pArea->pRow = ( void ** ) hb_xrealloc( pArea->pRow, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xrealloc( pArea->pRowFlags, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( HB_BYTE ) );
pArea->ulRecMax += SQLDD_ROWSET_RESIZE;
pArea->pRow = ( void ** ) hb_xrealloc( pArea->pRow, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xrealloc( pArea->pRowFlags, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( HB_BYTE ) );
pArea->ulRecMax += SQLDD_ROWSET_RESIZE;
}
pArea->ulRecCount++;
pArea->pRow[ pArea->ulRecCount ] = pArray;
pArea->pRowFlags[ pArea->ulRecCount ] = SQLDD_FLAG_CACHED;
pArea->pRow[ pArea->ulRecCount ] = pArray;
pArea->pRowFlags[ pArea->ulRecCount ] = SQLDD_FLAG_CACHED;
}
if( ulRecNo == 0 || ulRecNo > pArea->ulRecCount )
{
pArea->pRecord = pArea->pRow[ 0 ];
pArea->bRecordFlags = pArea->pRowFlags[ 0 ];
pArea->fPositioned = HB_FALSE;
pArea->pRecord = pArea->pRow[ 0 ];
pArea->bRecordFlags = pArea->pRowFlags[ 0 ];
pArea->fPositioned = HB_FALSE;
}
else
{
pArea->pRecord = pArea->pRow[ ulRecNo ];
pArea->bRecordFlags = pArea->pRowFlags[ ulRecNo ];
pArea->fPositioned = HB_TRUE;
pArea->pRecord = pArea->pRow[ ulRecNo ];
pArea->bRecordFlags = pArea->pRowFlags[ ulRecNo ];
pArea->fPositioned = HB_TRUE;
}
return HB_SUCCESS;
}

View File

@@ -131,7 +131,9 @@ static void hb_pgsqldd_init( void * cargo )
HB_FUNC_TRANSLATE( SDDPG, SQLBASE )
HB_INIT_SYMBOLS_BEGIN( sddpostgre__InitSymbols )
{ "SDDPG", { HB_FS_PUBLIC | HB_FS_LOCAL }, { HB_FUNCNAME( SDDPG ) }, NULL },
{
"SDDPG", { HB_FS_PUBLIC | HB_FS_LOCAL }, { HB_FUNCNAME( SDDPG ) }, NULL
},
HB_INIT_SYMBOLS_END( sddpostgre__InitSymbols )
HB_CALL_ON_STARTUP_BEGIN( _hb_sddpostgre_init_ )
@@ -142,7 +144,8 @@ HB_CALL_ON_STARTUP_END( _hb_sddpostgre_init_ )
#pragma startup sddpostgre__InitSymbols
#pragma startup _hb_sddpostgre_init_
#elif defined( HB_DATASEG_STARTUP )
#define HB_DATASEG_BODY HB_DATASEG_FUNC( sddpostgre__InitSymbols ) \
#define HB_DATASEG_BODY \
HB_DATASEG_FUNC( sddpostgre__InitSymbols ) \
HB_DATASEG_FUNC( _hb_sddpostgre_init_ )
#include "hbiniseg.h"
#endif
@@ -151,8 +154,8 @@ HB_CALL_ON_STARTUP_END( _hb_sddpostgre_init_ )
/* ===================================================================================== */
static HB_USHORT hb_errRT_PostgreSQLDD( HB_ERRCODE errGenCode, HB_ERRCODE errSubCode, const char * szDescription, const char * szOperation, HB_ERRCODE errOsCode )
{
HB_USHORT uiAction;
PHB_ITEM pError;
HB_USHORT uiAction;
PHB_ITEM pError;
pError = hb_errRT_New( ES_ERROR, "SDDPG", errGenCode, errSubCode, szDescription, szOperation, errOsCode, EF_NONE );
uiAction = hb_errLaunch( pError );
@@ -182,8 +185,8 @@ static HB_ERRCODE pgsqlConnect( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
PQfinish( pConn );
return HB_FAILURE;
}
pConnection->pSDDConn = hb_xgrab( sizeof( SDDCONN ) );
( ( SDDCONN * ) pConnection->pSDDConn )->pConn = pConn;
pConnection->pSDDConn = hb_xgrab( sizeof( SDDCONN ) );
( ( SDDCONN * ) pConnection->pSDDConn )->pConn = pConn;
return HB_SUCCESS;
}
@@ -241,10 +244,10 @@ static HB_ERRCODE pgsqlOpen( SQLBASEAREAP pArea )
HB_BOOL bError;
DBFIELDINFO pFieldInfo;
pArea->pSDDData = memset( hb_xgrab( sizeof( SDDDATA ) ), 0, sizeof( SDDDATA ) );
pSDDData = ( SDDDATA * ) pArea->pSDDData;
pArea->pSDDData = memset( hb_xgrab( sizeof( SDDDATA ) ), 0, sizeof( SDDDATA ) );
pSDDData = ( SDDDATA * ) pArea->pSDDData;
pResult = PQexec( pConn, pArea->szQuery );
pResult = PQexec( pConn, pArea->szQuery );
if( ! pResult )
{
hb_errRT_PostgreSQLDD( EG_OPEN, ESQLDD_LOWMEMORY, "Query failed", NULL, 0 ); /* Low memory, etc */
@@ -261,17 +264,17 @@ static HB_ERRCODE pgsqlOpen( SQLBASEAREAP pArea )
pSDDData->pResult = pResult;
uiFields = ( HB_USHORT ) PQnfields( pResult );
uiFields = ( HB_USHORT ) PQnfields( pResult );
SELF_SETFIELDEXTENT( ( AREAP ) pArea, uiFields );
pItemEof = hb_itemArrayNew( uiFields );
pItem = hb_itemNew( NULL );
pItemEof = hb_itemArrayNew( uiFields );
pItem = hb_itemNew( NULL );
bError = HB_FALSE;
bError = HB_FALSE;
for( uiCount = 0; uiCount < uiFields; uiCount++ )
{
pFieldInfo.atomName = PQfname( pResult, ( int ) uiCount );
pFieldInfo.uiDec = 0;
pFieldInfo.atomName = PQfname( pResult, ( int ) uiCount );
pFieldInfo.uiDec = 0;
switch( PQftype( pResult, ( int ) uiCount ) )
{
@@ -380,7 +383,7 @@ static HB_ERRCODE pgsqlOpen( SQLBASEAREAP pArea )
default:
pFieldInfo.uiType = 0;
pFieldInfo.uiLen = 0;
bError = HB_TRUE;
bError = HB_TRUE;
break;
}
/* printf( "field:%s \ttype:%d \tsize:%d \tformat:%d \tmod:%d err=%d\n", pFieldInfo.atomName, PQftype( pResult, ( int ) uiCount ), PQfsize( pResult, uiCount ), PQfformat( pResult, uiCount ) , PQfmod( pResult, uiCount ), bError ); */
@@ -393,9 +396,9 @@ static HB_ERRCODE pgsqlOpen( SQLBASEAREAP pArea )
{
char * pStr;
pStr = ( char * ) hb_xgrab( pFieldInfo.uiLen + 1 );
pStr = ( char * ) hb_xgrab( pFieldInfo.uiLen + 1 );
memset( pStr, ' ', pFieldInfo.uiLen );
pStr[ pFieldInfo.uiLen ] = '\0';
pStr[ pFieldInfo.uiLen ] = '\0';
hb_itemPutCL( pItem, pStr, pFieldInfo.uiLen );
hb_xfree( pStr );
@@ -458,15 +461,15 @@ static HB_ERRCODE pgsqlOpen( SQLBASEAREAP pArea )
return HB_FAILURE;
}
pArea->ulRecCount = ( HB_ULONG ) PQntuples( pResult );
pArea->ulRecCount = ( HB_ULONG ) PQntuples( pResult );
pArea->pRow = ( void ** ) hb_xgrab( ( pArea->ulRecCount + 1 ) * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xgrab( ( pArea->ulRecCount + 1 ) * sizeof( HB_BYTE ) );
pArea->pRow = ( void ** ) hb_xgrab( ( pArea->ulRecCount + 1 ) * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xgrab( ( pArea->ulRecCount + 1 ) * sizeof( HB_BYTE ) );
memset( pArea->pRowFlags, 0, ( pArea->ulRecCount + 1 ) * sizeof( HB_BYTE ) );
*pArea->pRow = pItemEof;
pArea->pRowFlags[ 0 ] = SQLDD_FLAG_CACHED;
pArea->fFetched = HB_TRUE;
*pArea->pRow = pItemEof;
pArea->pRowFlags[ 0 ] = SQLDD_FLAG_CACHED;
pArea->fFetched = HB_TRUE;
return HB_SUCCESS;
}
@@ -490,22 +493,22 @@ static HB_ERRCODE pgsqlClose( SQLBASEAREAP pArea )
static HB_ERRCODE pgsqlGetValue( SQLBASEAREAP pArea, HB_USHORT uiIndex, PHB_ITEM pItem )
{
SDDDATA * pSDDData = ( SDDDATA * ) pArea->pSDDData;
LPFIELD pField;
char * pValue;
HB_BOOL bError;
PHB_ITEM pError;
HB_SIZE ulLen;
SDDDATA * pSDDData = ( SDDDATA * ) pArea->pSDDData;
LPFIELD pField;
char * pValue;
HB_BOOL bError;
PHB_ITEM pError;
HB_SIZE ulLen;
bError = HB_FALSE;
bError = HB_FALSE;
uiIndex--;
pField = pArea->area.lpFields + uiIndex;
pField = pArea->area.lpFields + uiIndex;
if( PQgetisnull( pSDDData->pResult, pArea->ulRecNo - 1, uiIndex ) )
return HB_SUCCESS;
pValue = PQgetvalue( pSDDData->pResult, pArea->ulRecNo - 1, uiIndex );
ulLen = ( HB_SIZE ) PQgetlength( pSDDData->pResult, pArea->ulRecNo - 1, uiIndex );
pValue = PQgetvalue( pSDDData->pResult, pArea->ulRecNo - 1, uiIndex );
ulLen = ( HB_SIZE ) PQgetlength( pSDDData->pResult, pArea->ulRecNo - 1, uiIndex );
/* printf( "fieldget recno:%d index:%d value:%s len:%d\n", pArea->ulRecNo, uiIndex, pValue, ulLen ); */

View File

@@ -59,11 +59,11 @@
#include <sqlite3.h>
#define S_HB_ARRAYGETSTR( arr, n, phstr, plen ) hb_arrayGetStrUTF8( arr, n, phstr, plen )
#define S_HB_ITEMCOPYSTR( itm, str, len ) hb_itemCopyStrUTF8( itm, str, len )
#define S_HB_ITEMGETSTR( itm, phstr, plen ) hb_itemGetStrUTF8( itm, phstr, plen )
#define S_HB_ITEMPUTSTR( itm, str ) hb_itemPutStrUTF8( itm, str )
#define S_HB_ITEMPUTSTRLEN( itm, str, len ) hb_itemPutStrLenUTF8( itm, str, len )
#define S_HB_ARRAYGETSTR( arr, n, phstr, plen ) hb_arrayGetStrUTF8( arr, n, phstr, plen )
#define S_HB_ITEMCOPYSTR( itm, str, len ) hb_itemCopyStrUTF8( itm, str, len )
#define S_HB_ITEMGETSTR( itm, phstr, plen ) hb_itemGetStrUTF8( itm, phstr, plen )
#define S_HB_ITEMPUTSTR( itm, str ) hb_itemPutStrUTF8( itm, str )
#define S_HB_ITEMPUTSTRLEN( itm, str, len ) hb_itemPutStrLenUTF8( itm, str, len )
typedef struct
{
@@ -72,7 +72,7 @@ typedef struct
typedef struct
{
sqlite3_stmt * pStmt;
sqlite3_stmt * pStmt;
} SDDDATA;
static HB_ERRCODE sqlite3Connect( SQLDDCONNECTION * pConnection, PHB_ITEM pItem );
@@ -87,14 +87,14 @@ static SDDNODE sqlt3dd =
{
NULL,
"SQLITE3",
( SDDFUNC_CONNECT ) sqlite3Connect,
( SDDFUNC_CONNECT ) sqlite3Connect,
( SDDFUNC_DISCONNECT ) sqlite3Disconnect,
( SDDFUNC_EXECUTE ) sqlite3Execute,
( SDDFUNC_OPEN ) sqlite3Open,
( SDDFUNC_CLOSE ) sqlite3Close,
( SDDFUNC_GOTO ) sqlite3GoTo,
( SDDFUNC_GETVALUE ) NULL,
( SDDFUNC_GETVARLEN ) NULL
( SDDFUNC_EXECUTE ) sqlite3Execute,
( SDDFUNC_OPEN ) sqlite3Open,
( SDDFUNC_CLOSE ) sqlite3Close,
( SDDFUNC_GOTO ) sqlite3GoTo,
( SDDFUNC_GETVALUE ) NULL,
( SDDFUNC_GETVARLEN ) NULL
};
@@ -125,20 +125,23 @@ static void hb_sqlt3dd_exit( void * cargo )
HB_FUNC_TRANSLATE( SDDSQLITE3, SQLBASE )
HB_INIT_SYMBOLS_BEGIN( sqlt3dd__InitSymbols )
{ "SDDSQLITE3", {HB_FS_PUBLIC}, {HB_FUNCNAME( SDDSQLITE3 )}, NULL },
{
"SDDSQLITE3", { HB_FS_PUBLIC }, { HB_FUNCNAME( SDDSQLITE3 ) }, NULL
},
HB_INIT_SYMBOLS_END( sqlt3dd__InitSymbols )
HB_CALL_ON_STARTUP_BEGIN( _hb_sqlt3dd_init_ )
hb_vmAtInit( hb_sqlt3dd_init, NULL );
hb_vmAtExit( hb_sqlt3dd_exit, NULL );
hb_vmAtInit( hb_sqlt3dd_init, NULL );
hb_vmAtExit( hb_sqlt3dd_exit, NULL );
HB_CALL_ON_STARTUP_END( _hb_sqlt3dd_init_ )
#if defined( HB_PRAGMA_STARTUP )
#pragma startup sqlt3dd__InitSymbols
#pragma startup _hb_sqlt3dd_init_
#elif defined( HB_DATASEG_STARTUP )
#define HB_DATASEG_BODY HB_DATASEG_FUNC( sqlt3dd__InitSymbols ) \
HB_DATASEG_FUNC( _hb_sqlt3dd_init_ )
#define HB_DATASEG_BODY \
HB_DATASEG_FUNC( sqlt3dd__InitSymbols ) \
HB_DATASEG_FUNC( _hb_sqlt3dd_init_ )
#include "hbiniseg.h"
#endif
@@ -147,9 +150,9 @@ HB_CALL_ON_STARTUP_END( _hb_sqlt3dd_init_ )
static HB_USHORT hb_errRT_SQLT3DD( HB_ERRCODE errGenCode, HB_ERRCODE errSubCode, const char * szDescription, const char * szOperation, HB_ERRCODE errOsCode )
{
HB_USHORT uiAction;
PHB_ITEM pError;
PHB_ITEM pError;
pError = hb_errRT_New( ES_ERROR, "SDDSQLITE3", errGenCode, errSubCode, szDescription, szOperation, errOsCode, EF_NONE );
pError = hb_errRT_New( ES_ERROR, "SDDSQLITE3", errGenCode, errSubCode, szDescription, szOperation, errOsCode, EF_NONE );
uiAction = hb_errLaunch( pError );
hb_itemRelease( pError );
return uiAction;
@@ -185,7 +188,7 @@ static char * sqlite3GetError( sqlite3 * pDb, HB_ERRCODE * pErrCode )
static HB_ERRCODE sqlite3Connect( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
{
sqlite3 * db;
void * hConn;
void * hConn;
if( sqlite3_open( S_HB_ARRAYGETSTR( pItem, 2, &hConn, NULL ), &db ) == SQLITE_OK )
{
@@ -211,12 +214,12 @@ static HB_ERRCODE sqlite3Disconnect( SQLDDCONNECTION * pConnection )
static HB_ERRCODE sqlite3Execute( SQLDDCONNECTION * pConnection, PHB_ITEM pItem )
{
sqlite3 * pDb = ( ( SDDCONN * ) pConnection->pSDDConn )->pDb;
sqlite3 * pDb = ( ( SDDCONN * ) pConnection->pSDDConn )->pDb;
HB_ERRCODE errCode;
int iRow, iCol;
void * hStatement;
char ** pResult = NULL;
char * pszErrMsg = NULL;
int iRow, iCol;
void * hStatement;
char ** pResult = NULL;
char * pszErrMsg = NULL;
if( sqlite3_get_table( pDb, S_HB_ITEMGETSTR( pItem, &hStatement, NULL ), &pResult, &iRow, &iCol, &pszErrMsg ) != SQLITE_OK )
{
@@ -238,22 +241,22 @@ static HB_ERRCODE sqlite3Execute( SQLDDCONNECTION * pConnection, PHB_ITEM pItem
static HB_ERRCODE sqlite3Open( SQLBASEAREAP pArea )
{
sqlite3 * pDb = ( ( SDDCONN * ) pArea->pConnection->pSDDConn )->pDb;
sqlite3_stmt * st = NULL;
SDDDATA * pSDDData;
const char * pszQuery;
HB_SIZE nQueryLen;
void * hQuery;
HB_USHORT uiFields, uiIndex;
PHB_ITEM pItemEof, pItem;
HB_ERRCODE errCode;
char * szError;
HB_BOOL bError;
sqlite3 * pDb = ( ( SDDCONN * ) pArea->pConnection->pSDDConn )->pDb;
sqlite3_stmt * st = NULL;
SDDDATA * pSDDData;
const char * pszQuery;
HB_SIZE nQueryLen;
void * hQuery;
HB_USHORT uiFields, uiIndex;
PHB_ITEM pItemEof, pItem;
HB_ERRCODE errCode;
char * szError;
HB_BOOL bError;
pArea->pSDDData = memset( hb_xgrab( sizeof( SDDDATA ) ), 0, sizeof( SDDDATA ) );
pSDDData = ( SDDDATA * ) pArea->pSDDData;
pSDDData = ( SDDDATA * ) pArea->pSDDData;
pItem = hb_itemPutC( NULL, pArea->szQuery );
pItem = hb_itemPutC( NULL, pArea->szQuery );
pszQuery = S_HB_ITEMGETSTR( pItem, &hQuery, &nQueryLen );
if( sqlite3_prepare_v2( pDb, pszQuery, ( int ) nQueryLen, &st, NULL ) != SQLITE_OK )
@@ -289,7 +292,7 @@ static HB_ERRCODE sqlite3Open( SQLBASEAREAP pArea )
/* HB_TRACE( HB_TR_ALWAYS, ("fieldcount=%d", iNameLen) ); */
errCode = 0;
bError = HB_FALSE;
bError = HB_FALSE;
for( uiIndex = 0; uiIndex < uiFields; ++uiIndex )
{
DBFIELDINFO pFieldInfo;
@@ -306,7 +309,7 @@ static HB_ERRCODE sqlite3Open( SQLBASEAREAP pArea )
iDataType = sqlite3_column_type( st, uiIndex );
iSize = sqlite3_column_bytes( st, uiIndex );
iDec = 0;
iDec = 0;
pFieldInfo.uiLen = ( HB_USHORT ) iSize;
pFieldInfo.uiDec = ( HB_USHORT ) iDec;
@@ -330,7 +333,7 @@ static HB_ERRCODE sqlite3Open( SQLBASEAREAP pArea )
default:
/* HB_TRACE( HB_TR_ALWAYS, ("new sql type=%d", iDataType) ); */
bError = HB_TRUE;
bError = HB_TRUE;
errCode = ( HB_ERRCODE ) iDataType;
pFieldInfo.uiType = 0;
pFieldInfo.uiType = HB_FT_STRING;
@@ -362,7 +365,7 @@ static HB_ERRCODE sqlite3Open( SQLBASEAREAP pArea )
break;
default:
pItem = hb_itemNew( NULL );
pItem = hb_itemNew( NULL );
bError = HB_TRUE;
}
@@ -388,14 +391,14 @@ static HB_ERRCODE sqlite3Open( SQLBASEAREAP pArea )
}
pArea->ulRecCount = 0;
pArea->ulRecMax = SQLDD_ROWSET_INIT;
pArea->ulRecMax = SQLDD_ROWSET_INIT;
pArea->pRow = ( void ** ) hb_xgrab( SQLDD_ROWSET_INIT * sizeof( void * ) );
memset( pArea->pRow, 0, SQLDD_ROWSET_INIT * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xgrab( SQLDD_ROWSET_INIT * sizeof( HB_BYTE ) );
memset( pArea->pRowFlags, 0, SQLDD_ROWSET_INIT * sizeof( HB_BYTE ) );
pArea->pRow[ 0 ] = pItemEof;
pArea->pRow[ 0 ] = pItemEof;
pArea->pRowFlags[ 0 ] = SQLDD_FLAG_CACHED;
pSDDData->pStmt = st;
@@ -425,7 +428,7 @@ static HB_ERRCODE sqlite3GoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
while( ulRecNo > pArea->ulRecCount && ! pArea->fFetched )
{
PHB_ITEM pArray;
PHB_ITEM pArray;
HB_USHORT ui;
if( sqlite3_step( st ) != SQLITE_ROW )
@@ -438,8 +441,8 @@ static HB_ERRCODE sqlite3GoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
for( ui = 0; ui < pArea->area.uiFieldCount; ++ui )
{
PHB_ITEM pItem = NULL;
LPFIELD pField = pArea->area.lpFields + ui;
PHB_ITEM pItem = NULL;
LPFIELD pField = pArea->area.lpFields + ui;
switch( pField->uiType )
{
@@ -472,27 +475,27 @@ static HB_ERRCODE sqlite3GoTo( SQLBASEAREAP pArea, HB_ULONG ulRecNo )
}
if( pArea->ulRecCount + 1 <= pArea->ulRecMax )
{
pArea->pRow = ( void ** ) hb_xrealloc( pArea->pRow, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( void * ) );
pArea->pRow = ( void ** ) hb_xrealloc( pArea->pRow, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( void * ) );
pArea->pRowFlags = ( HB_BYTE * ) hb_xrealloc( pArea->pRowFlags, ( pArea->ulRecMax + SQLDD_ROWSET_RESIZE ) * sizeof( HB_BYTE ) );
pArea->ulRecMax += SQLDD_ROWSET_RESIZE;
}
pArea->ulRecCount++;
pArea->pRow[ pArea->ulRecCount ] = pArray;
pArea->pRow[ pArea->ulRecCount ] = pArray;
pArea->pRowFlags[ pArea->ulRecCount ] = SQLDD_FLAG_CACHED;
}
if( ulRecNo == 0 || ulRecNo > pArea->ulRecCount )
{
pArea->pRecord = pArea->pRow[ 0 ];
pArea->pRecord = pArea->pRow[ 0 ];
pArea->bRecordFlags = pArea->pRowFlags[ 0 ];
pArea->fPositioned = HB_FALSE;
pArea->fPositioned = HB_FALSE;
}
else
{
pArea->pRecord = pArea->pRow[ ulRecNo ];
pArea->pRecord = pArea->pRow[ ulRecNo ];
pArea->bRecordFlags = pArea->pRowFlags[ ulRecNo ];
pArea->fPositioned = HB_TRUE;
pArea->fPositioned = HB_TRUE;
}
return HB_SUCCESS;
}