19991020-12:59 GMT+1

This commit is contained in:
Viktor Szakats
1999-10-20 11:21:08 +00:00
parent 22b9510a0b
commit f35ae58efd
23 changed files with 250 additions and 221 deletions

View File

@@ -1,3 +1,51 @@
19991020-12:59 GMT+1 Victor Szel <info@szelvesz.hu>
* include/hbdefs.h
source/pp/hbpplib.c
source/rtl/arrays.c
source/rtl/math.c
source/rtl/samples.c
source/rtl/tone.c
source/rtl/filesys.c
source/rtl/memvars.c
source/compiler/harbour.y (HIBYTE(), LOBYTE(), MKLONG(), Ryszard!)
source/compiler/genc.c
source/compiler/genhrb.c
source/compiler/genjava.c
source/compiler/genobj32.c
* Some global macros renamed to avoid name collision with C extend
modules and standard OS makefiles.
MAX() -> HB_MAX_()
MIN() -> HB_MIN_()
(the additional underscore is need to avoid name collisions with
Harbour functions HB_MIN() and HB_MAX())
LOBYTE() -> HB_LOBYTE()
HIBYTE() -> HB_HIBYTE()
MKSHORT() -> HB_MKSHORT()
MKUSHORT() -> HB_MKUSHORT()
MKLONG() -> HB_MKLONG()
* include/hbdefs.h
include/hb_vmpub.h
source/compiler/harbour.y (Ryszard!)
source/vm/dynsym.c
source/vm/hvm.c
* SYMBOLSCOPE -> HB_SYMBOLSCOPE
* include/extend.h
source/vm/hvm.c
* STACK -> HB_STACK
* source/rtl/tbrowse.prg
+ Configure parameter added back, NOTE added that it's an undoc.
feature in Clipper.
* source/rtl/browdb.prg
include/hbextern.ch
source/runner/stdalone/external.prg
+ Public dbSkipper() function made STATIC, renamed to Skipped() to be
Clipper compatible. Clipper doesn't have any public dbSkipper(),
_dbSkipper() or Skipped() functions.
- Non-Clipper compatible function _dbSkipper() removed.
* Formatted.
* source/rtl/browse.prg
! Small formatting correction.
19991019-19:00 EDT David G. Holm <dholm@jsd-llc.com>
* config/w32/bcc32.cf

View File

@@ -214,7 +214,7 @@ typedef struct
PHB_ITEM pEvalBase; /* stack frame position for the evaluated codeblock */
int iStatics; /* statics base for the current function call */
char szDate[ 9 ]; /* last returned date from _pards() yyyymmdd format */
} STACK;
} HB_STACK;
/* internal structure for codeblocks */
typedef struct _HB_CODEBLOCK
@@ -238,8 +238,8 @@ typedef USHORT ERRCODE;
#define SUCCESS 0
#define FAILURE 1
extern STACK hb_stack;
extern HB_SYMB hb_symEval;
extern HB_STACK hb_stack;
extern HB_SYMB hb_symEval;
/* Extend API */
extern char * hb_parc( int iParam, ... ); /* retrieve a string parameter */

View File

@@ -45,7 +45,7 @@ struct _HB_DYNS;
typedef struct
{
char * szName; /* the name of the symbol */
SYMBOLSCOPE cScope; /* the scope of the symbol */
HB_SYMBOLSCOPE cScope; /* the scope of the symbol */
PHB_FUNC pFunPtr; /* function address for function symbol table entries */
struct _HB_DYNS *pDynSym; /* pointer to its dynamic symbol if defined */
} HB_SYMB, * PHB_SYMB;
@@ -62,14 +62,14 @@ typedef struct _HB_DYNS
#define HB_DYNS_FUNC( hbfunc ) BOOL hbfunc( PHB_DYNS pDynSymbol, void * Cargo )
typedef HB_DYNS_FUNC( PHB_DYNS_FUNC );
/* Harbour Functions scope ( SYMBOLSCOPE ) */
#define FS_PUBLIC ( ( SYMBOLSCOPE ) 0x00 )
#define FS_STATIC ( ( SYMBOLSCOPE ) 0x02 )
#define FS_INIT ( ( SYMBOLSCOPE ) 0x08 )
#define FS_EXIT ( ( SYMBOLSCOPE ) 0x10 )
/* Harbour Functions scope ( HB_SYMBOLSCOPE ) */
#define FS_PUBLIC ( ( HB_SYMBOLSCOPE ) 0x00 )
#define FS_STATIC ( ( HB_SYMBOLSCOPE ) 0x02 )
#define FS_INIT ( ( HB_SYMBOLSCOPE ) 0x08 )
#define FS_EXIT ( ( HB_SYMBOLSCOPE ) 0x10 )
#define FS_INITEXIT ( FS_INIT | FS_EXIT )
#define FS_MESSAGE ( ( SYMBOLSCOPE ) 0x20 )
#define FS_MEMVAR ( ( SYMBOLSCOPE ) 0x80 )
#define FS_MESSAGE ( ( HB_SYMBOLSCOPE ) 0x20 )
#define FS_MEMVAR ( ( HB_SYMBOLSCOPE ) 0x80 )
extern void hb_vmExecute( BYTE * pCode, PHB_SYMB pSymbols ); /* invokes the virtual machine */

View File

@@ -92,30 +92,16 @@ typedef unsigned long ULONG;
#endif /* HB_DONT_DEFINE_BASIC_TYPES */
#endif /* __IBMCPP__ */
#ifndef MAX
#define MAX( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) )
#endif
#ifndef MIN
#define MIN( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) )
#endif
#define HB_MAX_( a, b ) ( ( ( a ) > ( b ) ) ? ( a ) : ( b ) )
#define HB_MIN_( a, b ) ( ( ( a ) < ( b ) ) ? ( a ) : ( b ) )
#ifndef LOBYTE
#define LOBYTE( w ) ( ( BYTE ) ( w ) )
#endif
#ifndef HIBYTE
#define HIBYTE( w ) ( ( BYTE ) ( ( ( USHORT ) ( w ) >> 8 ) & 0xFF ) )
#endif
#ifndef MKSHORT
#define MKSHORT( b1, b2 ) ( ( SHORT ) ( ( ( SHORT ) b2 ) << 8 ) | b1 )
#endif
#ifndef MKUSHORT
#define MKUSHORT( b1, b2 ) ( ( USHORT ) ( ( ( USHORT ) b2 ) << 8 ) | b1 )
#endif
#ifndef MKLONG
#define MKLONG( b1, b2, b3, b4 ) ( ( ( long ) b4 ) << 24 ) | \
#define HB_LOBYTE( w ) ( ( BYTE ) ( w ) )
#define HB_HIBYTE( w ) ( ( BYTE ) ( ( ( USHORT ) ( w ) >> 8 ) & 0xFF ) )
#define HB_MKSHORT( b1, b2 ) ( ( SHORT ) ( ( ( SHORT ) b2 ) << 8 ) | b1 )
#define HB_MKUSHORT( b1, b2 ) ( ( USHORT ) ( ( ( USHORT ) b2 ) << 8 ) | b1 )
#define HB_MKLONG( b1, b2, b3, b4 ) ( ( ( long ) b4 ) << 24 ) | \
( ( ( long ) b3 ) << 16 ) | \
( ( ( long ) b2 ) << 8 ) | b1
#endif
#define HB_SYMBOL_UNUSED( symbol ) ( void ) symbol
@@ -145,7 +131,7 @@ typedef HARBOUR ( * PHB_FUNC )( void );
typedef PHB_FUNC HB_FUNC_PTR;
typedef LONG HB_HANDLE; /* handle to memvar value */
typedef char SYMBOLSCOPE; /* stores symbol's scope */
typedef char HB_SYMBOLSCOPE; /* stores symbol's scope */
/* Some common character constants */

View File

@@ -427,8 +427,6 @@ EXTERNAL ASORT
//symbols from file: rtl\browdb.prg
//
EXTERNAL TBROWSEDB
EXTERNAL _DBSKIPPER
EXTERNAL DBSKIPPER
//
//symbols from file: rtl\browse.prg
//

View File

@@ -424,8 +424,8 @@ void GenCCode( PHB_FNAME pFileName ) /* generates the C language output */
wSym = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
wFixPos = FixSymbolPos( wSym );
fprintf( yyc, "\tHB_P_MESSAGE, %i, %i,",
LOBYTE( wFixPos ),
HIBYTE( wFixPos ) );
HB_LOBYTE( wFixPos ),
HB_HIBYTE( wFixPos ) );
if( _bGenCVerbose ) fprintf( yyc, "\t/* %s */", GetSymbolOrd( wSym )->szName );
fprintf( yyc, "\n" );
lPCodePos += 3;
@@ -491,8 +491,8 @@ void GenCCode( PHB_FNAME pFileName ) /* generates the C language output */
wVar = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
wFixPos = FixSymbolPos( wVar );
fprintf( yyc, "\tHB_P_PARAMETER, %i, %i, %i,",
LOBYTE( wFixPos ),
HIBYTE( wFixPos ),
HB_LOBYTE( wFixPos ),
HB_HIBYTE( wFixPos ),
pFunc->pCode[ lPCodePos + 3 ] );
if( _bGenCVerbose ) fprintf( yyc, "\t/* %s */", GetSymbolOrd( wVar )->szName );
fprintf( yyc, "\n" );
@@ -522,8 +522,8 @@ void GenCCode( PHB_FNAME pFileName ) /* generates the C language output */
wVar = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
wFixPos = FixSymbolPos( wVar );
fprintf( yyc, "\tHB_P_POPALIASEDFIELD, %i, %i,",
LOBYTE( wFixPos ),
HIBYTE( wFixPos ) );
HB_LOBYTE( wFixPos ),
HB_HIBYTE( wFixPos ) );
if( _bGenCVerbose ) fprintf( yyc, "\t/* %s */", GetSymbolOrd( wVar )->szName );
fprintf( yyc, "\n" );
lPCodePos += 3;
@@ -537,8 +537,8 @@ void GenCCode( PHB_FNAME pFileName ) /* generates the C language output */
wVar = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
wFixPos = FixSymbolPos( wVar );
fprintf( yyc, "\tHB_P_POPFIELD, %i, %i,",
LOBYTE( wFixPos ),
HIBYTE( wFixPos ) );
HB_LOBYTE( wFixPos ),
HB_HIBYTE( wFixPos ) );
if( _bGenCVerbose ) fprintf( yyc, "\t/* %s */", GetSymbolOrd( wVar )->szName );
fprintf( yyc, "\n" );
lPCodePos += 3;
@@ -591,8 +591,8 @@ void GenCCode( PHB_FNAME pFileName ) /* generates the C language output */
wVar = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
wFixPos = FixSymbolPos( wVar );
fprintf( yyc, "\tHB_P_POPMEMVAR, %i, %i,",
LOBYTE( wFixPos ),
HIBYTE( wFixPos ) );
HB_LOBYTE( wFixPos ),
HB_HIBYTE( wFixPos ) );
if( _bGenCVerbose ) fprintf( yyc, "\t/* %s */", GetSymbolOrd( wVar )->szName );
fprintf( yyc, "\n" );
lPCodePos += 3;
@@ -624,8 +624,8 @@ void GenCCode( PHB_FNAME pFileName ) /* generates the C language output */
wVar = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256;
wFixPos = FixSymbolPos( wVar );
fprintf( yyc, "\tHB_P_POPVARIABLE, %i, %i,",
LOBYTE( wFixPos ),
HIBYTE( wFixPos ) );
HB_LOBYTE( wFixPos ),
HB_HIBYTE( wFixPos ) );
if( _bGenCVerbose ) fprintf( yyc, "\t/* %s */", GetSymbolOrd( wVar )->szName );
fprintf( yyc, "\n" );
lPCodePos += 3;
@@ -650,8 +650,8 @@ void GenCCode( PHB_FNAME pFileName ) /* generates the C language output */
pFunc->pCode[ lPCodePos + 2 ] * 256;
wFixPos = FixSymbolPos( wVar );
fprintf( yyc, "\tHB_P_PUSHALIASEDFIELD, %i, %i,",
LOBYTE( wFixPos ),
HIBYTE( wFixPos ) );
HB_LOBYTE( wFixPos ),
HB_HIBYTE( wFixPos ) );
if( _bGenCVerbose ) fprintf( yyc, "\t/* %s */", GetSymbolOrd( wVar )->szName );
fprintf( yyc, "\n" );
lPCodePos += 3;
@@ -721,8 +721,8 @@ void GenCCode( PHB_FNAME pFileName ) /* generates the C language output */
pFunc->pCode[ lPCodePos + 2 ] * 256;
wFixPos = FixSymbolPos( wVar );
fprintf( yyc, "\tHB_P_PUSHFIELD, %i, %i,",
LOBYTE( wFixPos ),
HIBYTE( wFixPos ) );
HB_LOBYTE( wFixPos ),
HB_HIBYTE( wFixPos ) );
if( _bGenCVerbose ) fprintf( yyc, "\t/* %s */", GetSymbolOrd( wVar )->szName );
fprintf( yyc, "\n" );
lPCodePos += 3;
@@ -837,8 +837,8 @@ void GenCCode( PHB_FNAME pFileName ) /* generates the C language output */
pFunc->pCode[ lPCodePos + 2 ] * 256;
wFixPos = FixSymbolPos( wVar );
fprintf( yyc, "\tHB_P_PUSHMEMVAR, %i, %i,",
LOBYTE( wFixPos ),
HIBYTE( wFixPos ) );
HB_LOBYTE( wFixPos ),
HB_HIBYTE( wFixPos ) );
if( _bGenCVerbose ) fprintf( yyc, "\t/* %s */", GetSymbolOrd( wVar )->szName );
fprintf( yyc, "\n" );
lPCodePos += 3;
@@ -853,8 +853,8 @@ void GenCCode( PHB_FNAME pFileName ) /* generates the C language output */
pFunc->pCode[ lPCodePos + 2 ] * 256;
wFixPos = FixSymbolPos( wVar );
fprintf( yyc, "\tHB_P_PUSHMEMVARREF, %i, %i,",
LOBYTE( wFixPos ),
HIBYTE( wFixPos ) );
HB_LOBYTE( wFixPos ),
HB_HIBYTE( wFixPos ) );
if( _bGenCVerbose ) fprintf( yyc, "\t/* %s */", GetSymbolOrd( wVar )->szName );
fprintf( yyc, "\n" );
lPCodePos += 3;
@@ -938,8 +938,8 @@ void GenCCode( PHB_FNAME pFileName ) /* generates the C language output */
pFunc->pCode[ lPCodePos + 2 ] * 256;
wFixPos = FixSymbolPos( wSym );
fprintf( yyc, "\tHB_P_PUSHSYM, %i, %i,",
LOBYTE( wFixPos ),
HIBYTE( wFixPos ) );
HB_LOBYTE( wFixPos ),
HB_HIBYTE( wFixPos ) );
if( _bGenCVerbose ) fprintf( yyc, "\t/* %s */", GetSymbolOrd( wSym )->szName );
fprintf( yyc, "\n" );
lPCodePos += 3;
@@ -954,8 +954,8 @@ void GenCCode( PHB_FNAME pFileName ) /* generates the C language output */
pFunc->pCode[ lPCodePos + 2 ] * 256;
wFixPos = FixSymbolPos( wVar );
fprintf( yyc, "\tHB_P_PUSHVARIABLE, %i, %i,",
LOBYTE( wFixPos ),
HIBYTE( wFixPos ) );
HB_LOBYTE( wFixPos ),
HB_HIBYTE( wFixPos ) );
if( _bGenCVerbose ) fprintf( yyc, "\t/* %s */", GetSymbolOrd( wVar )->szName );
fprintf( yyc, "\n" );
lPCodePos += 3;
@@ -1001,7 +1001,7 @@ void GenCCode( PHB_FNAME pFileName ) /* generates the C language output */
GetSymbol( _pInitFunc->szName, &w );
w = FixSymbolPos( w );
fprintf( yyc, "\tHB_P_SFRAME, %i, %i,",
LOBYTE( w ), HIBYTE( w ) );
HB_LOBYTE( w ), HB_HIBYTE( w ) );
if( _bGenCVerbose ) fprintf( yyc, "\t/* symbol (_INITSTATICS) */" );
fprintf( yyc, "\n" );
}
@@ -1013,8 +1013,8 @@ void GenCCode( PHB_FNAME pFileName ) /* generates the C language output */
GetSymbol( _pInitFunc->szName, &w );
w = FixSymbolPos( w );
fprintf( yyc, "\tHB_P_STATICS, %i, %i, %i, %i,",
LOBYTE( w ),
HIBYTE( w ),
HB_LOBYTE( w ),
HB_HIBYTE( w ),
pFunc->pCode[ lPCodePos + 3 ],
pFunc->pCode[ lPCodePos + 4 ] );
if( _bGenCVerbose ) fprintf( yyc, "\t/* symbol (_INITSTATICS), %i statics */", pFunc->pCode[ lPCodePos + 3 ] + pFunc->pCode[ lPCodePos + 4 ] * 256 );

View File

@@ -274,16 +274,16 @@ void GenPortObj( PHB_FNAME pFileName )
case HB_P_PUSHALIASEDFIELD:
fputc( pFunc->pCode[ lPCodePos ], yyc );
wVar = FixSymbolPos( pFunc->pCode[ lPCodePos + 1 ] + 256 * pFunc->pCode[ lPCodePos + 2 ] );
fputc( LOBYTE( wVar ), yyc );
fputc( HIBYTE( wVar ), yyc );
fputc( HB_LOBYTE( wVar ), yyc );
fputc( HB_HIBYTE( wVar ), yyc );
lPCodePos += 3;
break;
case HB_P_PARAMETER:
fputc( pFunc->pCode[ lPCodePos ], yyc );
wVar = FixSymbolPos( pFunc->pCode[ lPCodePos + 1 ] + 256 * pFunc->pCode[ lPCodePos + 2 ] );
fputc( LOBYTE( wVar ), yyc );
fputc( HIBYTE( wVar ), yyc );
fputc( HB_LOBYTE( wVar ), yyc );
fputc( HB_HIBYTE( wVar ), yyc );
fputc( pFunc->pCode[ lPCodePos + 3 ], yyc );
lPCodePos +=4;
break;
@@ -342,8 +342,8 @@ void GenPortObj( PHB_FNAME pFileName )
GetSymbol( _pInitFunc->szName, &w );
w = FixSymbolPos( w );
fputc( pFunc->pCode[ lPCodePos ], yyc );
fputc( LOBYTE( w ), yyc );
fputc( HIBYTE( w ), yyc );
fputc( HB_LOBYTE( w ), yyc );
fputc( HB_HIBYTE( w ), yyc );
}
else
lPad += 3;
@@ -354,8 +354,8 @@ void GenPortObj( PHB_FNAME pFileName )
GetSymbol( _pInitFunc->szName, &w );
w = FixSymbolPos( w );
fputc( pFunc->pCode[ lPCodePos ], yyc );
fputc( LOBYTE( w ), yyc );
fputc( HIBYTE( w ), yyc );
fputc( HB_LOBYTE( w ), yyc );
fputc( HB_HIBYTE( w ), yyc );
fputc( pFunc->pCode[ lPCodePos + 3 ], yyc );
fputc( pFunc->pCode[ lPCodePos + 4 ], yyc );
lPCodePos += 5;

View File

@@ -293,16 +293,16 @@ void GenJava( PHB_FNAME pFileName )
case HB_P_PUSHALIASEDFIELD:
hb_fputc( pFunc->pCode[ lPCodePos ], yyc );
wVar = FixSymbolPos( pFunc->pCode[ lPCodePos + 1 ] + 256 * pFunc->pCode[ lPCodePos + 2 ] );
hb_fputc( LOBYTE( wVar ), yyc );
hb_fputc( HIBYTE( wVar ), yyc );
hb_fputc( HB_LOBYTE( wVar ), yyc );
hb_fputc( HB_HIBYTE( wVar ), yyc );
lPCodePos += 3;
break;
case HB_P_PARAMETER:
hb_fputc( pFunc->pCode[ lPCodePos ], yyc );
wVar = FixSymbolPos( pFunc->pCode[ lPCodePos + 1 ] + 256 * pFunc->pCode[ lPCodePos + 2 ] );
hb_fputc( LOBYTE( wVar ), yyc );
hb_fputc( HIBYTE( wVar ), yyc );
hb_fputc( HB_LOBYTE( wVar ), yyc );
hb_fputc( HB_HIBYTE( wVar ), yyc );
hb_fputc( pFunc->pCode[ lPCodePos + 3 ], yyc );
lPCodePos +=4;
break;
@@ -361,8 +361,8 @@ void GenJava( PHB_FNAME pFileName )
GetSymbol( _pInitFunc->szName, &w );
w = FixSymbolPos( w );
hb_fputc( pFunc->pCode[ lPCodePos ], yyc );
hb_fputc( LOBYTE( w ), yyc );
hb_fputc( HIBYTE( w ), yyc );
hb_fputc( HB_LOBYTE( w ), yyc );
hb_fputc( HB_HIBYTE( w ), yyc );
}
else
lPad += 3;
@@ -373,8 +373,8 @@ void GenJava( PHB_FNAME pFileName )
GetSymbol( _pInitFunc->szName, &w );
w = FixSymbolPos( w );
hb_fputc( pFunc->pCode[ lPCodePos ], yyc );
hb_fputc( LOBYTE( w ), yyc );
hb_fputc( HIBYTE( w ), yyc );
hb_fputc( HB_LOBYTE( w ), yyc );
hb_fputc( HB_HIBYTE( w ), yyc );
hb_fputc( pFunc->pCode[ lPCodePos + 3 ], yyc );
hb_fputc( pFunc->pCode[ lPCodePos + 4 ], yyc );
lPCodePos += 5;

View File

@@ -331,8 +331,8 @@ static void putbyte( BYTE b, FILE * hObjFile )
static void putword( USHORT w, FILE * hObjFile )
{
putbyte( LOBYTE( w ), hObjFile );
putbyte( HIBYTE( w ), hObjFile );
putbyte( HB_LOBYTE( w ), hObjFile );
putbyte( HB_HIBYTE( w ), hObjFile );
}
static void CompiledFileName( FILE * hObjFile, char * szFileName )
@@ -370,8 +370,8 @@ static void CompilerVersion( FILE * hObjFile, char * szVersion )
bChk += 0x88;
putword( 3 + wLen, hObjFile ); /* now it comes the total length of this OBJ record */
bChk += LOBYTE( 3 + wLen );
bChk += HIBYTE( 3 + wLen );
bChk += HB_LOBYTE( 3 + wLen );
bChk += HB_HIBYTE( 3 + wLen );
putword( 0, hObjFile );
@@ -397,10 +397,10 @@ static void LocalNames( FILE * hObjFile, char * szNames[] )
putbyte( 0x96, hObjFile );
bChk += 0x96;
putbyte( LOBYTE( wTotalLen ), hObjFile );
bChk += LOBYTE( wTotalLen );
putbyte( HIBYTE( wTotalLen ), hObjFile );
bChk += HIBYTE( wTotalLen );
putbyte( HB_LOBYTE( wTotalLen ), hObjFile );
bChk += HB_LOBYTE( wTotalLen );
putbyte( HB_HIBYTE( wTotalLen ), hObjFile );
bChk += HB_HIBYTE( wTotalLen );
putbyte( 0, hObjFile );
@@ -435,8 +435,8 @@ static void ExternalNames( FILE * hObjFile, char * szNames[] )
bChk += 0x8C;
putword( wTotalLen, hObjFile );
bChk += LOBYTE( wTotalLen );
bChk += HIBYTE( wTotalLen );
bChk += HB_LOBYTE( wTotalLen );
bChk += HB_HIBYTE( wTotalLen );
b = 0;
while( szNames[ b ] )
@@ -473,8 +473,8 @@ static void CodeSegment( FILE * hObjFile, BYTE * prgCode, ULONG ulPrgLen, USHORT
bCheckSum += 0xA0;
putword( wTotalLen, hObjFile );
bCheckSum += LOBYTE( wTotalLen );
bCheckSum += HIBYTE( wTotalLen );
bCheckSum += HB_LOBYTE( wTotalLen );
bCheckSum += HB_HIBYTE( wTotalLen );
putbyte( 1, hObjFile ); /* 1 = _TEXT segment */
bCheckSum += 1;
@@ -514,8 +514,8 @@ static void DataSegment( FILE * hObjFile, BYTE * symbol, USHORT wSymLen, USHORT
bCheckSum += 0xA0;
putword( wTotalLen, hObjFile );
bCheckSum += LOBYTE( wTotalLen );
bCheckSum += HIBYTE( wTotalLen );
bCheckSum += HB_LOBYTE( wTotalLen );
bCheckSum += HB_HIBYTE( wTotalLen );
putbyte( 2, hObjFile ); /* 2 = _DATA segment */
bCheckSum += 2;
@@ -592,8 +592,8 @@ static void DefineSegment( FILE * hObjFile, BYTE bName, BYTE bClass, USHORT wLen
bCheckSum += 0xA9;
putword( wLen, hObjFile );
bCheckSum += LOBYTE( wLen );
bCheckSum += HIBYTE( wLen );
bCheckSum += HB_LOBYTE( wLen );
bCheckSum += HB_HIBYTE( wLen );
putbyte( bName, hObjFile );
bCheckSum += bName;
@@ -614,8 +614,8 @@ static void PubDef( FILE * hObjFile, char * szName, USHORT wSegment, USHORT wOff
bChk += 0x90;
putword( wLen, hObjFile );
bChk += LOBYTE( wLen );
bChk += HIBYTE( wLen );
bChk += HB_LOBYTE( wLen );
bChk += HB_HIBYTE( wLen );
putbyte( 0x00, hObjFile );
putbyte( wSegment, hObjFile );
@@ -631,8 +631,8 @@ static void PubDef( FILE * hObjFile, char * szName, USHORT wSegment, USHORT wOff
}
putword( wOffset, hObjFile);
bChk += LOBYTE( wOffset );
bChk += HIBYTE( wOffset );
bChk += HB_LOBYTE( wOffset );
bChk += HB_HIBYTE( wOffset );
putbyte( 0x00, hObjFile );
putbyte( 256 - bChk, hObjFile );
@@ -646,11 +646,11 @@ static void Fixup( FILE * hObjFile, BYTE bType, USHORT wOffset, BYTE bFlags, BYT
putword( 5, hObjFile ); bCheckSum += 5;
putbyte( bType + HIBYTE( wOffset ), hObjFile );
bCheckSum += bType + HIBYTE( wOffset );
putbyte( bType + HB_HIBYTE( wOffset ), hObjFile );
bCheckSum += bType + HB_HIBYTE( wOffset );
putbyte( LOBYTE( wOffset ), hObjFile );
bCheckSum += LOBYTE( wOffset );
putbyte( HB_LOBYTE( wOffset ), hObjFile );
bCheckSum += HB_LOBYTE( wOffset );
putbyte( bFlags, hObjFile ); bCheckSum += bFlags;
putbyte( bSymbol, hObjFile ); bCheckSum += bSymbol;
@@ -667,8 +667,8 @@ static void EnumeratedData( FILE * hObjFile, BYTE bSegment, BYTE * pData, USHORT
bCheckSum += 0xA0;
putword( ( USHORT ) ( wLen + 4 ), hObjFile );
bCheckSum += LOBYTE( wLen + 4 );
bCheckSum += HIBYTE( wLen + 4 );
bCheckSum += HB_LOBYTE( wLen + 4 );
bCheckSum += HB_HIBYTE( wLen + 4 );
putbyte( bSegment, hObjFile );
bCheckSum += bSegment;
@@ -712,8 +712,8 @@ static void GroupDef( FILE * hObjFile, BYTE bName, BYTE * aSegs )
bCheckSum += 0x9A;
putword( wRecLen, hObjFile );
bCheckSum += LOBYTE( wRecLen );
bCheckSum += HIBYTE( wRecLen );
bCheckSum += HB_LOBYTE( wRecLen );
bCheckSum += HB_HIBYTE( wRecLen );
putbyte( bName + 1, hObjFile );
bCheckSum += bName + 1;

View File

@@ -212,7 +212,7 @@ void FixElseIfs( void * pIfElseIfs ); /* implements the ElseIfs pcode fixups */
void FixReturns( void ); /* fixes all last defined function returns jumps offsets */
void Function( BYTE bParams ); /* generates the pcode to execute a Clipper function pushing its result */
PFUNCTION FunctionNew( char *, char ); /* creates and initialises the _FUNC structure */
void FunDef( char * szFunName, SYMBOLSCOPE cScope, int iType ); /* starts a new Clipper language function definition */
void FunDef( char * szFunName, HB_SYMBOLSCOPE cScope, int iType ); /* starts a new Clipper language function definition */
void GenArray( int iElements ); /* instructs the virtual machine to build an array and load elemnst from the stack */
void GenBreak( void ); /* generate code for BREAK statement */
void * GenElseIf( void * pFirstElseIf, ULONG ulOffset ); /* generates a support structure for elseifs pcode fixups */
@@ -612,8 +612,8 @@ Line : LINE NUM_INTEGER LITERAL Crlf
| LINE NUM_INTEGER LITERAL '@' LITERAL Crlf /* XBase++ style */
;
Function : FunScope FUNCTION IDENTIFIER { _cVarType = ' '; FunDef( $3, ( SYMBOLSCOPE ) $1, 0 ); } Params Crlf {}
| FunScope PROCEDURE IDENTIFIER { _cVarType = ' '; FunDef( $3, ( SYMBOLSCOPE ) $1, FUN_PROCEDURE ); } Params Crlf {}
Function : FunScope FUNCTION IDENTIFIER { _cVarType = ' '; FunDef( $3, ( HB_SYMBOLSCOPE ) $1, 0 ); } Params Crlf {}
| FunScope PROCEDURE IDENTIFIER { _cVarType = ' '; FunDef( $3, ( HB_SYMBOLSCOPE ) $1, FUN_PROCEDURE ); } Params Crlf {}
| FunScope DECLARE_FUN IDENTIFIER Params AsType Crlf { AddSymbol( $3, NULL ); }
;
@@ -1866,8 +1866,8 @@ int harbour_main( int argc, char * argv[] )
PCOMSYMBOL pSym;
/* Fix the number of static variables */
_pInitFunc->pCode[ 3 ] = LOBYTE( _iStatics );
_pInitFunc->pCode[ 4 ] = HIBYTE( _iStatics );
_pInitFunc->pCode[ 3 ] = HB_LOBYTE( _iStatics );
_pInitFunc->pCode[ 4 ] = HB_HIBYTE( _iStatics );
_pInitFunc->iStaticsBase = _iStatics;
pSym = AddSymbol( _pInitFunc->szName, NULL );
@@ -2208,8 +2208,8 @@ void AddVar( char * szVarName )
if( ! pSym )
pSym = AddSymbol( yy_strdup( szVarName ), &wPos );
pSym->cScope |= VS_MEMVAR;
GenPCode3( HB_P_PARAMETER, LOBYTE( wPos ), HIBYTE( wPos ) );
GenPCode1( LOBYTE( functions.pLast->wParamNum ) );
GenPCode3( HB_P_PARAMETER, HB_LOBYTE( wPos ), HB_HIBYTE( wPos ) );
GenPCode1( HB_LOBYTE( functions.pLast->wParamNum ) );
/* Add this variable to the local variables list - this will
* allow to use the correct positions for real local variables.
@@ -2289,7 +2289,7 @@ void AddVar( char * szVarName )
}
if( _bDebugInfo )
{
GenPCode3( HB_P_LOCALNAME, LOBYTE( wLocal ), HIBYTE( wLocal ) );
GenPCode3( HB_P_LOCALNAME, HB_LOBYTE( wLocal ), HB_HIBYTE( wLocal ) );
GenPCodeN( ( BYTE * )szVarName, strlen( szVarName ) );
GenPCode1( 0 );
}
@@ -2656,13 +2656,13 @@ void FieldPCode( BYTE bPCode, char * szVarName )
if( ! pVar )
pVar = AddSymbol( szVarName, &wVar );
pVar->cScope |= VS_MEMVAR;
GenPCode3( bPCode, LOBYTE( wVar ), HIBYTE( wVar ) );
GenPCode3( bPCode, HB_LOBYTE( wVar ), HB_HIBYTE( wVar ) );
}
/*
* This function creates and initialises the _FUNC structure
*/
PFUNCTION FunctionNew( char * szName, SYMBOLSCOPE cScope )
PFUNCTION FunctionNew( char * szName, HB_SYMBOLSCOPE cScope )
{
PFUNCTION pFunc;
@@ -2693,7 +2693,7 @@ PFUNCTION FunctionNew( char * szName, SYMBOLSCOPE cScope )
* cScope - scope of a function
* iType - FUN_PROCEDURE if a procedure or 0
*/
void FunDef( char * szFunName, SYMBOLSCOPE cScope, int iType )
void FunDef( char * szFunName, HB_SYMBOLSCOPE cScope, int iType )
{
PCOMSYMBOL pSym;
PFUNCTION pFunc;
@@ -3306,7 +3306,7 @@ ULONG Jump( LONG lOffset )
if( lOffset < ( LONG ) SHRT_MIN || lOffset > ( LONG ) SHRT_MAX )
GenError( _szCErrors, 'E', ERR_JUMP_TOO_LONG, NULL, NULL );
GenPCode3( HB_P_JUMP, LOBYTE( lOffset ), HIBYTE( lOffset ) );
GenPCode3( HB_P_JUMP, HB_LOBYTE( lOffset ), HB_HIBYTE( lOffset ) );
return functions.pLast->lPCodePos - 2;
}
@@ -3318,7 +3318,7 @@ ULONG JumpFalse( LONG lOffset )
if( lOffset < ( LONG ) SHRT_MIN || lOffset > ( LONG ) SHRT_MAX )
GenError( _szCErrors, 'E', ERR_JUMP_TOO_LONG, NULL, NULL );
GenPCode3( HB_P_JUMPFALSE, LOBYTE( lOffset ), HIBYTE( lOffset ) );
GenPCode3( HB_P_JUMPFALSE, HB_LOBYTE( lOffset ), HB_HIBYTE( lOffset ) );
ValTypeCheck( 'L', WARN_LOGICAL_TYPE, WARN_LOGICAL_SUSPECT );
ValTypePop( 1 );
@@ -3336,8 +3336,8 @@ void JumpThere( ULONG ulFrom, ULONG ulTo )
if( lOffset < ( LONG ) SHRT_MIN || lOffset > ( LONG ) SHRT_MAX )
GenError( _szCErrors, 'E', ERR_JUMP_TOO_LONG, NULL, NULL );
pCode[ ( ULONG ) ulFrom ] = LOBYTE( lOffset );
pCode[ ( ULONG ) ulFrom + 1 ] = HIBYTE( lOffset );
pCode[ ( ULONG ) ulFrom ] = HB_LOBYTE( lOffset );
pCode[ ( ULONG ) ulFrom + 1 ] = HB_HIBYTE( lOffset );
}
void JumpHere( ULONG ulOffset )
@@ -3351,7 +3351,7 @@ ULONG JumpTrue( LONG lOffset )
*/
if( lOffset < ( LONG ) SHRT_MIN || lOffset > ( LONG ) SHRT_MAX )
GenError( _szCErrors, 'E', ERR_JUMP_TOO_LONG, NULL, NULL );
GenPCode3( HB_P_JUMPTRUE, LOBYTE( lOffset ), HIBYTE( lOffset ) );
GenPCode3( HB_P_JUMPTRUE, HB_LOBYTE( lOffset ), HB_HIBYTE( lOffset ) );
ValTypeCheck( 'L', WARN_LOGICAL_TYPE, WARN_LOGICAL_SUSPECT );
ValTypePop( 1 );
@@ -3366,12 +3366,12 @@ void Line( void ) /* generates the pcode with the currently compiled source code
if( ( ( functions.pLast->lPCodePos - _ulLastLinePos ) > 3 ) || _bDebugInfo )
{
_ulLastLinePos = functions.pLast->lPCodePos;
GenPCode3( HB_P_LINE, LOBYTE( iLine ), HIBYTE( iLine ) );
GenPCode3( HB_P_LINE, HB_LOBYTE( iLine ), HB_HIBYTE( iLine ) );
}
else
{
functions.pLast->pCode[ _ulLastLinePos +1 ] = LOBYTE( iLine );
functions.pLast->pCode[ _ulLastLinePos +2 ] = HIBYTE( iLine );
functions.pLast->pCode[ _ulLastLinePos +1 ] = HB_LOBYTE( iLine );
functions.pLast->pCode[ _ulLastLinePos +2 ] = HB_HIBYTE( iLine );
}
}
_bDontGenLineNum = FALSE;
@@ -3520,7 +3520,7 @@ void VariablePCode( BYTE bPCode, char * szVarName )
if( ! pSym )
pSym = AddSymbol( szVarName, &wVar );
pSym->cScope |= VS_MEMVAR;
GenPCode3( bPCode, LOBYTE( wVar ), HIBYTE( wVar ) );
GenPCode3( bPCode, HB_LOBYTE( wVar ), HB_HIBYTE( wVar ) );
}
/**
@@ -3537,7 +3537,7 @@ void MemvarPCode( BYTE bPCode, char * szVarName )
if( ! pSym )
pSym = AddSymbol( szVarName, &wVar );
pSym->cScope |= VS_MEMVAR;
GenPCode3( bPCode, LOBYTE( wVar ), HIBYTE( wVar ) );
GenPCode3( bPCode, HB_LOBYTE( wVar ), HB_HIBYTE( wVar ) );
}
void Message( char * szMsgName ) /* sends a message to an object */
@@ -3548,7 +3548,7 @@ void Message( char * szMsgName ) /* sends a message to an object */
if( ! pSym ) /* the symbol was not found on the symbol table */
pSym = AddSymbol( szMsgName, &wSym );
pSym->cScope |= FS_MESSAGE;
GenPCode3( HB_P_MESSAGE, LOBYTE( wSym ), HIBYTE( wSym ) );
GenPCode3( HB_P_MESSAGE, HB_LOBYTE( wSym ), HB_HIBYTE( wSym ) );
ValTypePush( pSym->cType );
}
@@ -3568,8 +3568,8 @@ void MessageDupl( char * szMsgName ) /* fix a generated message and duplicate t
bLoGetSym = pFunc->pCode[ _ulMessageFix + 1];
bHiGetSym = pFunc->pCode[ _ulMessageFix + 2];
pFunc->pCode[ _ulMessageFix + 1 ] = LOBYTE( wSetSym );
pFunc->pCode[ _ulMessageFix + 2 ] = HIBYTE( wSetSym );
pFunc->pCode[ _ulMessageFix + 1 ] = HB_LOBYTE( wSetSym );
pFunc->pCode[ _ulMessageFix + 2 ] = HB_HIBYTE( wSetSym );
pFunc->lPCodePos -= 3; /* Remove unnecessary function call */
Duplicate(); /* Duplicate object */
@@ -3588,8 +3588,8 @@ void MessageFix( char * szMsgName ) /* fix a generated message to an object */
pSym = AddSymbol( szMsgName, &wSym );
pSym->cScope |= FS_MESSAGE;
pFunc->pCode[ _ulMessageFix + 1 ] = LOBYTE( wSym );
pFunc->pCode[ _ulMessageFix + 2 ] = HIBYTE( wSym );
pFunc->pCode[ _ulMessageFix + 1 ] = HB_LOBYTE( wSym );
pFunc->pCode[ _ulMessageFix + 2 ] = HB_HIBYTE( wSym );
pFunc->lPCodePos -= 3; /* Remove unnecessary function call */
}
@@ -3601,13 +3601,13 @@ void PopId( char * szVarName ) /* generates the pcode to pop a value from the vi
{
iVar = GetLocalVarPos( szVarName );
if( iVar )
GenPCode3( HB_P_POPLOCAL, LOBYTE( iVar ), HIBYTE( iVar ) );
GenPCode3( HB_P_POPLOCAL, HB_LOBYTE( iVar ), HB_HIBYTE( iVar ) );
else
{
iVar = GetStaticVarPos( szVarName );
if( iVar )
{
GenPCode3( HB_P_POPSTATIC, LOBYTE( iVar ), HIBYTE( iVar ) );
GenPCode3( HB_P_POPSTATIC, HB_LOBYTE( iVar ), HB_HIBYTE( iVar ) );
functions.pLast->bFlags |= FUN_USES_STATICS;
}
else
@@ -3679,13 +3679,13 @@ void PushId( char * szVarName ) /* generates the pcode to push a variable value
iVar = GetLocalVarPos( szVarName );
if( iVar )
GenPCode3( HB_P_PUSHLOCAL, LOBYTE( iVar ), HIBYTE( iVar ) );
GenPCode3( HB_P_PUSHLOCAL, HB_LOBYTE( iVar ), HB_HIBYTE( iVar ) );
else
{
iVar = GetStaticVarPos( szVarName );
if( iVar )
{
GenPCode3( HB_P_PUSHSTATIC, LOBYTE( iVar ), HIBYTE( iVar ) );
GenPCode3( HB_P_PUSHSTATIC, HB_LOBYTE( iVar ), HB_HIBYTE( iVar ) );
functions.pLast->bFlags |= FUN_USES_STATICS;
}
else
@@ -3753,13 +3753,13 @@ void PushIdByRef( char * szVarName ) /* generates the pcode to push a variable b
iVar = GetLocalVarPos( szVarName );
if( iVar )
GenPCode3( HB_P_PUSHLOCALREF, LOBYTE( iVar ), HIBYTE( iVar ) );
GenPCode3( HB_P_PUSHLOCALREF, HB_LOBYTE( iVar ), HB_HIBYTE( iVar ) );
else
{
iVar = GetStaticVarPos( szVarName );
if( iVar )
{
GenPCode3( HB_P_PUSHSTATICREF, LOBYTE( iVar ), HIBYTE( iVar ) );
GenPCode3( HB_P_PUSHSTATICREF, HB_LOBYTE( iVar ), HB_HIBYTE( iVar ) );
functions.pLast->bFlags |= FUN_USES_STATICS;
}
else
@@ -3821,7 +3821,7 @@ void PushFunCall( char * szFunName )
void PushInteger( int iNumber )
{
if( iNumber )
GenPCode3( HB_P_PUSHINT, LOBYTE( ( USHORT ) iNumber ), HIBYTE( ( USHORT ) iNumber ) );
GenPCode3( HB_P_PUSHINT, HB_LOBYTE( ( USHORT ) iNumber ), HB_HIBYTE( ( USHORT ) iNumber ) );
else
GenPCode1( HB_P_ZERO );
}
@@ -3848,7 +3848,7 @@ void PushString( char * szText )
{
int iStrLen = strlen( szText );
GenPCode3( HB_P_PUSHSTR, LOBYTE( iStrLen ), HIBYTE( iStrLen ) );
GenPCode3( HB_P_PUSHSTR, HB_LOBYTE( iStrLen ), HB_HIBYTE( iStrLen ) );
GenPCodeN( ( BYTE * ) szText, iStrLen );
ValTypePush( 'C' );
@@ -3884,7 +3884,7 @@ void PushSymbol( char * szSymbolName, int iIsFunction )
if( iIsFunction && ! GetFuncall( szSymbolName ) )
AddFunCall( szSymbolName );
}
GenPCode3( HB_P_PUSHSYM, LOBYTE( wSym ), HIBYTE( wSym ) );
GenPCode3( HB_P_PUSHSYM, HB_LOBYTE( wSym ), HB_HIBYTE( wSym ) );
ValTypePush( iIsFunction ? pSym->cType : _cVarType );
}
@@ -3914,7 +3914,7 @@ void Dec( void )
void ArrayDim( int iDimensions )
{
GenPCode3( HB_P_ARRAYDIM, LOBYTE( iDimensions ), HIBYTE( iDimensions ) );
GenPCode3( HB_P_ARRAYDIM, HB_LOBYTE( iDimensions ), HB_HIBYTE( iDimensions ) );
}
void Do( BYTE bParams )
@@ -3993,7 +3993,7 @@ void Function( BYTE bParams )
void GenArray( int iElements )
{
GenPCode3( HB_P_ARRAYGEN, LOBYTE( iElements ), HIBYTE( iElements ) );
GenPCode3( HB_P_ARRAYGEN, HB_LOBYTE( iElements ), HB_HIBYTE( iElements ) );
ValTypePop( iElements ); /* pop all items of the array */
ValTypePush( 'A' );
@@ -4220,19 +4220,19 @@ void CodeBlockEnd()
/*NOTE: 8 = HB_P_PUSHBLOCK + USHORT( size ) + USHORT( wParams ) + USHORT( wLocals ) + _ENDBLOCK */
wSize = ( USHORT ) pCodeblock->lPCodePos + 8 + wLocals * 2;
GenPCode3( HB_P_PUSHBLOCK, LOBYTE( wSize ), HIBYTE( wSize ) );
GenPCode1( LOBYTE( pCodeblock->wParamCount ) );
GenPCode1( HIBYTE( pCodeblock->wParamCount ) );
GenPCode1( LOBYTE( wLocals ) );
GenPCode1( HIBYTE( wLocals ) );
GenPCode3( HB_P_PUSHBLOCK, HB_LOBYTE( wSize ), HB_HIBYTE( wSize ) );
GenPCode1( HB_LOBYTE( pCodeblock->wParamCount ) );
GenPCode1( HB_HIBYTE( pCodeblock->wParamCount ) );
GenPCode1( HB_LOBYTE( wLocals ) );
GenPCode1( HB_HIBYTE( wLocals ) );
/* generate the table of referenced local variables */
pVar = pCodeblock->pStatics;
while( wLocals-- )
{
wPos = GetVarPos( pFunc->pLocals, pVar->szName );
GenPCode1( LOBYTE( wPos ) );
GenPCode1( HIBYTE( wPos ) );
GenPCode1( HB_LOBYTE( wPos ) );
GenPCode1( HB_HIBYTE( wPos ) );
pFree = pVar;
hb_xfree( ( void * ) pFree->szName );
@@ -4900,7 +4900,7 @@ static ULONG PackDateTime( void )
nValue = ( BYTE ) oTime->tm_sec; /* 6 bits */
szString[ 3 ] |= nValue;
return MKLONG( szString[ 3 ], szString[ 2 ], szString[ 1 ], szString[ 0 ] );
return HB_MKLONG( szString[ 3 ], szString[ 2 ], szString[ 1 ], szString[ 0 ] );
}
static BOOL SwitchCmp( char * szString, char * szSwitch )

View File

@@ -62,7 +62,7 @@ HARBOUR HB___PREPROCESS( void )
int slen;
slen = MIN( hb_parclen( 1 ), STR_SIZE - 1 );
slen = HB_MIN_( hb_parclen( 1 ), STR_SIZE - 1 );
memcpy( pText, hb_parc( 1 ), slen );
pText[ slen ] = 0; /* Preprocessor expects null-terminated string */
memset( pOut, 0, STR_SIZE );

View File

@@ -791,7 +791,7 @@ HARBOUR HB_ASIZE( void )
{
LONG lSize = hb_parnl( 2 );
hb_arraySize( pArray, MAX( lSize, 0 ) );
hb_arraySize( pArray, HB_MAX_( lSize, 0 ) );
hb_itemReturn( pArray ); /* ASize() returns the array itself */
}

View File

@@ -33,46 +33,41 @@
*
*/
function TBrowseDb( nTop, nLeft, nBott, nRight )
FUNCTION TBrowseDB( nTop, nLeft, nBottom, nRight )
local oTb := TBrowseNew( nTop, nLeft, nBott, nRight )
LOCAL oBrowse := TBrowseNew( nTop, nLeft, nBottom, nRight )
oTb:SkipBlock := { | n | DbSkipper( n ) }
oTb:GoTopBlock := { || DbGoTop() }
oTb:GoBottomBlock := { || DbGoBottom() }
oBrowse:SkipBlock := { | nRecs | Skipped( nRecs ) }
oBrowse:GoTopBlock := { || dbGoTop() }
oBrowse:GoBottomBlock := { || dbGoBottom() }
Return oTb
RETURN oBrowse
function _DbSkipper( nRecs )
STATIC FUNCTION Skipped( nRecs )
return DbSkipper( nRecs )
LOCAL nSkipped := 0
function DbSkipper( nRecs )
local nSkipped := 0
if LastRec() != 0
if nRecs == 0
DbSkip( 0 )
elseif nRecs > 0 .and. Recno() != LastRec() + 1
while nSkipped < nRecs
DbSkip( 1 )
if Eof()
DbSkip( -1 )
exit
endif
IF LastRec() != 0
IF nRecs == 0
dbSkip( 0 )
ELSEIF nRecs > 0 .AND. Recno() != LastRec() + 1
WHILE nSkipped < nRecs
dbSkip( 1 )
IF Eof()
dbSkip( -1 )
EXIT
ENDIF
++nSkipped
end
elseif nRecs < 0
while nSkipped > nRecs
DbSkip( -1 )
if Bof()
ENDDO
ELSEIF nRecs < 0
WHILE nSkipped > nRecs
dbSkip( -1 )
IF Bof()
exit
endif
ENDIF
--nSkipped
end
endif
endif
return nSkipped
ENDDO
ENDIF
ENDIF
RETURN nSkipped

View File

@@ -41,7 +41,8 @@ function Browse( nTop, nLeft, nBottom, nRight )
local oBrw
local cOldScreen
local n, nKey, nOldCursor
local n, nOldCursor
local nKey := 0
local lExit := .f.
local lGotKey := .f.
local bAction
@@ -76,8 +77,10 @@ function Browse( nTop, nLeft, nBottom, nRight )
while ! lExit
while !oBrw:stabilize() .and. NextKey() == 0
enddo
if nKey == 0
while !oBrw:stabilize() .and. NextKey() == 0
enddo
endif
if NextKey() == 0
@@ -156,7 +159,7 @@ static function Statline( oBrw )
@ nTop, nRight - 27 SAY "Record "
if LastRec() == 0
@ nTop, nRight - 20 say "<none> "
@ nTop, nRight - 20 SAY "<none> "
elseif RecNo() == LastRec() + 1
@ nTop, nRight - 40 SAY " "
@ nTop, nRight - 20 SAY " <new>"
@@ -164,7 +167,7 @@ static function Statline( oBrw )
@ nTop, nRight - 40 SAY iif( Deleted(), "<Deleted>", " " )
@ nTop, nRight - 20 SAY PadR( LTrim( Str( RecNo() ) ) + "/" +;
Ltrim( Str( LastRec() ) ), 16 ) +;
iif( oBrw:hitTop, "<bof>", " " )
iif( oBrw:hitTop, "<bof>", " " )
endif
return nil

View File

@@ -1486,8 +1486,8 @@ HARBOUR HB_BIN2W( void )
byBuffer[ 0 ] = ( ulLen >= 1 ) ? ( BYTE ) pszString[ 0 ] : 0;
byBuffer[ 1 ] = ( ulLen >= 2 ) ? ( BYTE ) pszString[ 1 ] : 0;
hb_retni( MKUSHORT( byBuffer[ 0 ],
byBuffer[ 1 ] ) );
hb_retni( HB_MKUSHORT( byBuffer[ 0 ],
byBuffer[ 1 ] ) );
}
else
hb_retni( 0 );
@@ -1506,8 +1506,8 @@ HARBOUR HB_BIN2I( void )
byBuffer[ 0 ] = ( ulLen >= 1 ) ? ( BYTE ) pszString[ 0 ] : 0;
byBuffer[ 1 ] = ( ulLen >= 2 ) ? ( BYTE ) pszString[ 1 ] : 0;
hb_retni( MKSHORT( byBuffer[ 0 ],
byBuffer[ 1 ] ) );
hb_retni( HB_MKSHORT( byBuffer[ 0 ],
byBuffer[ 1 ] ) );
}
else
hb_retni( 0 );
@@ -1528,10 +1528,10 @@ HARBOUR HB_BIN2L( void )
byBuffer[ 2 ] = ( ulLen >= 3 ) ? ( BYTE ) pszString[ 2 ] : 0;
byBuffer[ 3 ] = ( ulLen >= 4 ) ? ( BYTE ) pszString[ 3 ] : 0;
hb_retnl( MKLONG( byBuffer[ 0 ],
byBuffer[ 1 ],
byBuffer[ 2 ],
byBuffer[ 3 ] ) );
hb_retnl( HB_MKLONG( byBuffer[ 0 ],
byBuffer[ 1 ],
byBuffer[ 2 ],
byBuffer[ 3 ] ) );
}
else
hb_retnl( 0 );

View File

@@ -463,7 +463,7 @@ HARBOUR HB_ROUND( void )
{
int iDec = hb_parni( 2 );
hb_retndlen( hb_numRound( hb_parnd( 1 ), iDec ), 0, MAX( iDec, 0 ) );
hb_retndlen( hb_numRound( hb_parnd( 1 ), iDec ), 0, HB_MAX_( iDec, 0 ) );
}
else
{

View File

@@ -1662,8 +1662,8 @@ HARBOUR HB___MVSAVE( void )
USHORT uiLength = hb_itemGetCLen( pItem ) + 1;
buffer[ 11 ] = 'C' + 128;
buffer[ 16 ] = LOBYTE( uiLength );
buffer[ 17 ] = HIBYTE( uiLength );
buffer[ 16 ] = HB_LOBYTE( uiLength );
buffer[ 17 ] = HB_HIBYTE( uiLength );
hb_fsWrite( fhnd, buffer, HB_MEM_REC_LEN );
hb_fsWrite( fhnd, ( BYTE * ) hb_itemGetCPtr( pItem ), uiLength );

View File

@@ -79,7 +79,7 @@ HARBOUR HB_AMPM( void )
{
char * pszTime = hb_parc( 1 );
ULONG ulTimeLen = hb_parclen( 1 );
char * pszResult = ( char * ) hb_xgrab( MAX( ulTimeLen, 2 ) + 3 + 1 );
char * pszResult = ( char * ) hb_xgrab( HB_MAX_( ulTimeLen, 2 ) + 3 + 1 );
USHORT uiHour = ( USHORT ) hb_strVal( pszTime );
BOOL bAM;

View File

@@ -84,14 +84,15 @@ CLASS TBrowse
METHOD Up() // Moves the cursor up one row
METHOD AddColumn( oCol ) INLINE ;
AAdd( ::aColumns, oCol ), ::Configure(), Self // Adds a TBColumn object to the TBrowse object
AAdd( ::aColumns, oCol ), ::Configure( 2 ), Self // Adds a TBColumn object to the TBrowse object
METHOD ColCount() INLINE Len( ::aColumns )
METHOD ColorRect() // Alters the color of a rectangular group of cells
// Returns the display width of a particular column
METHOD ColWidth( nColumn ) INLINE If( 0 < nColumn .and. nColumn <= Len( ::aColumns ),;
::aColumns[ nColumn ]:Width, nil )
METHOD Configure() VIRTUAL // Reconfigures the internal settings of the TBrowse object
METHOD Configure( nMode ) VIRTUAL // Reconfigures the internal settings of the TBrowse object
// nMode is an undocumented parameter in CA-Cl*pper
METHOD LeftDetermine() // Determine leftmost unfrozen column in display
METHOD DeHilite() // Dehighlights the current cell
@@ -106,7 +107,7 @@ CLASS TBrowse
METHOD InsColumn( nPos, oCol ) INLINE ASize( ::aColumns, Len( ::aColumns + 1 ) ),;
AIns( ::aColumns, nPos ),;
::aColumns[ nPos ] := oCol, ::Configure(), oCol
::aColumns[ nPos ] := oCol, ::Configure( 2 ), oCol
// Insert a column object in a browse
METHOD Invalidate() // Forces entire redraw during next stabilization
@@ -153,7 +154,7 @@ METHOD DelColumn( nPos ) CLASS TBrowse
ADel( ::aColumns, nPos )
ASize( ::aColumns, Len( ::aColumns ) - 1 )
::Configure()
::Configure( 2 )
return oCol

View File

@@ -155,10 +155,10 @@ void hb_tone( double dFrequency, double dDuration )
dDuration = -1.0; /* Exit without delay */
#endif
#if defined(HARBOUR_GCC_OS2) || defined(OS2) || defined(WINNT) || defined(_Windows) || defined(__MINGW32__)
dFrequency = MIN( MAX( 0.0, dFrequency ), 32767.0 );
dFrequency = HB_MIN_( HB_MAX_( 0.0, dFrequency ), 32767.0 );
dDuration = dDuration * 1000.0 / 18.2; /* milliseconds */
#elif defined(__DJGPP) || defined(__BORLANDC__)
dFrequency = MIN( MAX( 0.0, dFrequency ), 32767.0 );
dFrequency = HB_MIN_( HB_MAX_( 0.0, dFrequency ), 32767.0 );
dDuration = dDuration * CLOCKS_PER_SEC / 18.2 ; /* clocks */
#endif
#if defined(__BORLANDC__) && ! defined(_Windows) && ! defined(WINNT)
@@ -169,9 +169,9 @@ void hb_tone( double dFrequency, double dDuration )
while( dDuration > 0.0 )
{
#if defined(HARBOUR_GCC_OS2) || defined(_Windows) || defined(__CYGWIN__) || defined(WINNT)
temp = MIN( MAX( 0, dDuration ), ULONG_MAX );
temp = HB_MIN_( HB_MAX_( 0, dDuration ), ULONG_MAX );
#elif defined(OS2) || defined(__BORLANDC__) || defined(__DJGPP__) || defined(__MINGW32__)
temp = MIN( MAX( 0, dDuration ), USHRT_MAX );
temp = HB_MIN_( HB_MAX_( 0, dDuration ), USHRT_MAX );
#endif
dDuration -= temp;
if( temp <= 0 )

View File

@@ -424,8 +424,6 @@ EXTERNAL ASORT
//symbols from file: rtl\browdb.prg
//
EXTERNAL TBROWSEDB
EXTERNAL _DBSKIPPER
EXTERNAL DBSKIPPER
//
//symbols from file: rtl\browse.prg
//

View File

@@ -35,7 +35,7 @@
#include "extend.h"
#define SYM_ALLOCATED ( ( SYMBOLSCOPE ) -1 )
#define SYM_ALLOCATED ( ( HB_SYMBOLSCOPE ) -1 )
typedef struct
{

View File

@@ -70,7 +70,7 @@ typedef struct _SYMBOLS
PHB_SYMB pModuleSymbols; /* pointer to a one module own symbol table */
USHORT uiModuleSymbols; /* number of symbols on that table */
struct _SYMBOLS * pNext; /* pointer to the next SYMBOLS structure */
SYMBOLSCOPE hScope; /* scope collected from all symbols in module used to speed initialization code */
HB_SYMBOLSCOPE hScope; /* scope collected from all symbols in module used to speed initialization code */
} SYMBOLS, * PSYMBOLS; /* structure to keep track of all modules symbol tables */
extern HARBOUR HB_SYSINIT( void );
@@ -199,8 +199,8 @@ extern POBJSYMBOLS HB_FIRSTSYMBOL, HB_LASTSYMBOL;
/* virtual machine state */
STACK hb_stack;
HB_SYMB hb_symEval = { "__EVAL", FS_PUBLIC, hb_vmDoBlock, 0 }; /* symbol to evaluate codeblocks */
HB_STACK hb_stack;
HB_SYMB hb_symEval = { "__EVAL", FS_PUBLIC, hb_vmDoBlock, 0 }; /* symbol to evaluate codeblocks */
static HB_ITEM s_aStatics; /* Harbour array to hold all application statics variables */
static BOOL s_bDebugging = FALSE;
@@ -3050,7 +3050,7 @@ void hb_vmProcessSymbols( PHB_SYMB pModuleSymbols, USHORT uiModuleSymbols ) /* m
for( ui = 0; ui < uiModuleSymbols; ui++ ) /* register each public symbol on the dynamic symbol table */
{
SYMBOLSCOPE hSymScope;
HB_SYMBOLSCOPE hSymScope;
hSymScope = ( pModuleSymbols + ui )->cScope;
pNewSymbols->hScope |= hSymScope;
@@ -3111,7 +3111,7 @@ static void hb_vmDoInitStatics( void )
for( ui = 0; ui < pLastSymbols->uiModuleSymbols; ui++ )
{
SYMBOLSCOPE scope = ( pLastSymbols->pModuleSymbols + ui )->cScope & ( FS_EXIT | FS_INIT );
HB_SYMBOLSCOPE scope = ( pLastSymbols->pModuleSymbols + ui )->cScope & ( FS_EXIT | FS_INIT );
if( scope == ( FS_INIT | FS_EXIT ) )
{
@@ -3145,7 +3145,7 @@ static void hb_vmDoExitFunctions( void )
for( ui = 0; ui < pLastSymbols->uiModuleSymbols; ui++ )
{
SYMBOLSCOPE scope = ( pLastSymbols->pModuleSymbols + ui )->cScope & ( FS_EXIT | FS_INIT );
HB_SYMBOLSCOPE scope = ( pLastSymbols->pModuleSymbols + ui )->cScope & ( FS_EXIT | FS_INIT );
if( scope == FS_EXIT )
{
@@ -3177,7 +3177,7 @@ static void hb_vmDoInitFunctions( void )
for( ui = 0; ui < pLastSymbols->uiModuleSymbols; ui++ )
{
SYMBOLSCOPE scope = ( pLastSymbols->pModuleSymbols + ui )->cScope & ( FS_EXIT | FS_INIT );
HB_SYMBOLSCOPE scope = ( pLastSymbols->pModuleSymbols + ui )->cScope & ( FS_EXIT | FS_INIT );
if( scope == FS_INIT )
{