diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 40c94b0aed..6bdecbea6e 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -8,6 +8,20 @@ 2002-12-01 13:30 UTC+0100 Foo Bar */ +2006-07-27 14:20 UTC+0100 Ryszard Glab + * include/hbcomp.h + * source/compiler/genc.c + * source/compiler/gencli.c + * source/compiler/genhrb.c + * source/compiler/genjava.c + * source/compiler/genobj32.c + * source/compiler/harbour.c + * fixed compilation of static variables with -gc2 switch + + * source/pp/ppcore.c + * fixed vertical spacing in generated ppo files + + 2006-07-27 01:18 UTC+0100 Viktor Szakats (viktor.szakats syenar.hu) * harbour/source/rtl/dbedit.prg ! Previous non-strict compatible part made fully compatible by diff --git a/harbour/include/hbcomp.h b/harbour/include/hbcomp.h index 41e7dd47ea..b07fd1e8cd 100644 --- a/harbour/include/hbcomp.h +++ b/harbour/include/hbcomp.h @@ -334,6 +334,7 @@ extern PVAR hb_compVariableFind( PVAR pVars, USHORT wOrder ); /* returns a varia extern PVAR hb_compLocalVariableFind( PFUNCTION pFunc, USHORT wVar ); extern USHORT hb_compVariableGetPos( PVAR pVars, char * szVarName ); /* returns the order + 1 of a variable if defined or zero */ extern int hb_compLocalGetPos( char * szVarName ); /* returns the order + 1 of a local variable */ +extern char * hb_compStaticGetName( USHORT wVar ); /* returns the name of static variable */ #define HB_SYM_MEMVAR FALSE #define HB_SYM_MSGNAME FALSE diff --git a/harbour/source/compiler/genc.c b/harbour/source/compiler/genc.c index 5e73dcf4b1..e4309062e5 100644 --- a/harbour/source/compiler/genc.c +++ b/harbour/source/compiler/genc.c @@ -99,6 +99,9 @@ void hb_compGenCCode( PHB_FNAME pFileName ) /* generates the C language ou fprintf( yyc, "\n\n" ); + if( ! hb_comp_bStartProc ) + pFunc = pFunc->pNext; /* No implicit starting procedure */ + /* write functions prototypes for PRG defined functions */ while( pFunc ) { @@ -233,6 +236,9 @@ void hb_compGenCCode( PHB_FNAME pFileName ) /* generates the C language ou */ pFunc = hb_comp_functions.pFirst; + if( ! hb_comp_bStartProc ) + pFunc = pFunc->pNext; /* No implicit starting procedure */ + while( pFunc ) { bIsInitStatics = ( pFunc == hb_comp_pInitFunc ); @@ -1133,15 +1139,8 @@ static HB_GENC_FUNC( hb_p_popstatic ) pFunc->pCode[ lPCodePos + 2 ] ); if( cargo->bVerbose ) { - PVAR pVar; - PFUNCTION pTmp = hb_comp_functions.pFirst; - USHORT wVar = HB_PCODE_MKUSHORT( &( pFunc->pCode[ lPCodePos + 1 ] ) ); - - while( pTmp->pNext && pTmp->pNext->iStaticsBase < wVar ) - pTmp = pTmp->pNext; - pVar = hb_compVariableFind( pTmp->pStatics, wVar - pTmp->iStaticsBase ); - - fprintf( cargo->yyc, "\t/* %s */", pVar->szName ); + char *szName = hb_compStaticGetName( HB_PCODE_MKUSHORT( &( pFunc->pCode[ lPCodePos + 1 ] ) ) ); + fprintf( cargo->yyc, "\t/* %s */", szName ); } fprintf( cargo->yyc, "\n" ); return 3; @@ -1487,13 +1486,8 @@ static HB_GENC_FUNC( hb_p_pushstatic ) pFunc->pCode[ lPCodePos + 2 ] ); if( cargo->bVerbose ) { - PVAR pVar; - PFUNCTION pTmp = hb_comp_functions.pFirst; - USHORT wVar = HB_PCODE_MKUSHORT( &( pFunc->pCode[ lPCodePos + 1 ] ) ); - while( pTmp->pNext && pTmp->pNext->iStaticsBase < wVar ) - pTmp = pTmp->pNext; - pVar = hb_compVariableFind( pTmp->pStatics, wVar - pTmp->iStaticsBase ); - fprintf( cargo->yyc, "\t/* %s */", pVar->szName ); + char *szName = hb_compStaticGetName( HB_PCODE_MKUSHORT( &( pFunc->pCode[ lPCodePos + 1 ] ) ) ); + fprintf( cargo->yyc, "\t/* %s */", szName ); } fprintf( cargo->yyc, "\n" ); return 3; @@ -1506,14 +1500,8 @@ static HB_GENC_FUNC( hb_p_pushstaticref ) pFunc->pCode[ lPCodePos + 2 ] ); if( cargo->bVerbose ) { - PVAR pVar; - PFUNCTION pTmp = hb_comp_functions.pFirst; - - USHORT wVar = HB_PCODE_MKUSHORT( &( pFunc->pCode[ lPCodePos + 1 ] ) ); - while( pTmp->pNext && pTmp->pNext->iStaticsBase < wVar ) - pTmp = pTmp->pNext; - pVar = hb_compVariableFind( pTmp->pStatics, wVar - pTmp->iStaticsBase ); - fprintf( cargo->yyc, "\t/* %s */", pVar->szName ); + char *szName = hb_compStaticGetName( HB_PCODE_MKUSHORT( &( pFunc->pCode[ lPCodePos + 1 ] ) ) ); + fprintf( cargo->yyc, "\t/* %s */", szName ); } fprintf( cargo->yyc, "\n" ); diff --git a/harbour/source/compiler/gencli.c b/harbour/source/compiler/gencli.c index 53cca1d863..8b610e1594 100644 --- a/harbour/source/compiler/gencli.c +++ b/harbour/source/compiler/gencli.c @@ -107,6 +107,9 @@ void hb_compGenILCode( PHB_FNAME pFileName ) /* generates the IL output */ */ pFunc = hb_comp_functions.pFirst; + if( ! hb_comp_bStartProc ) + pFunc = pFunc->pNext; /* No implicit starting procedure */ + while( pFunc ) { bIsInitFunction = ( pFunc->cScope & HB_FS_INIT ) ; @@ -1089,14 +1092,8 @@ static HB_GENC_FUNC( hb_p_popstatic ) pFunc->pCode[ lPCodePos + 2 ] ); if( cargo->bVerbose ) { - PVAR pVar; - PFUNCTION pTmp = hb_comp_functions.pFirst; - USHORT wVar = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256; - while( pTmp->pNext && pTmp->pNext->iStaticsBase < wVar ) - pTmp = pTmp->pNext; - pVar = hb_compVariableFind( pTmp->pStatics, wVar - pTmp->iStaticsBase ); - - fprintf( cargo->yyc, "\t/* %s */", pVar->szName ); + char *szName = hb_compStaticGetName( HB_PCODE_MKUSHORT( &( pFunc->pCode[ lPCodePos + 1 ] ) ) ); + fprintf( cargo->yyc, "\t/* %s */", szName ); } fprintf( cargo->yyc, "\n" ); return 3; @@ -1433,13 +1430,8 @@ static HB_GENC_FUNC( hb_p_pushstatic ) pFunc->pCode[ lPCodePos + 2 ] ); if( cargo->bVerbose ) { - PVAR pVar; - PFUNCTION pTmp = hb_comp_functions.pFirst; - USHORT wVar = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256; - while( pTmp->pNext && pTmp->pNext->iStaticsBase < wVar ) - pTmp = pTmp->pNext; - pVar = hb_compVariableFind( pTmp->pStatics, wVar - pTmp->iStaticsBase ); - fprintf( cargo->yyc, "\t/* %s */", pVar->szName ); + char *szName = hb_compStaticGetName( HB_PCODE_MKUSHORT( &( pFunc->pCode[ lPCodePos + 1 ] ) ) ); + fprintf( cargo->yyc, "\t/* %s */", szName ); } fprintf( cargo->yyc, "\n" ); return 3; @@ -1452,14 +1444,8 @@ static HB_GENC_FUNC( hb_p_pushstaticref ) pFunc->pCode[ lPCodePos + 2 ] ); if( cargo->bVerbose ) { - PVAR pVar; - PFUNCTION pTmp = hb_comp_functions.pFirst; - - USHORT wVar = pFunc->pCode[ lPCodePos + 1 ] + pFunc->pCode[ lPCodePos + 2 ] * 256; - while( pTmp->pNext && pTmp->pNext->iStaticsBase < wVar ) - pTmp = pTmp->pNext; - pVar = hb_compVariableFind( pTmp->pStatics, wVar - pTmp->iStaticsBase ); - fprintf( cargo->yyc, "\t/* %s */", pVar->szName ); + char *szName = hb_compStaticGetName( HB_PCODE_MKUSHORT( &( pFunc->pCode[ lPCodePos + 1 ] ) ) ); + fprintf( cargo->yyc, "\t/* %s */", szName ); } fprintf( cargo->yyc, "\n" ); diff --git a/harbour/source/compiler/genhrb.c b/harbour/source/compiler/genhrb.c index ac004d3956..36c2316d65 100644 --- a/harbour/source/compiler/genhrb.c +++ b/harbour/source/compiler/genhrb.c @@ -35,7 +35,7 @@ void hb_compGenPortObj( PHB_FNAME pFileName ) { char szFileName[ _POSIX_PATH_MAX ]; - PFUNCTION pFunc /*= hb_comp_functions.pFirst */; + PFUNCTION pFunc /*= hb_comp_functions.pFirst*/; PCOMSYMBOL pSym = hb_comp_symbols.pFirst; ULONG lPCodePos; LONG lSymbols; @@ -111,6 +111,8 @@ void hb_compGenPortObj( PHB_FNAME pFileName ) /* Generate functions data */ pFunc = hb_comp_functions.pFirst; + if( ! hb_comp_bStartProc ) + pFunc = pFunc->pNext; while( pFunc ) { diff --git a/harbour/source/compiler/genjava.c b/harbour/source/compiler/genjava.c index 5c480e7b3c..b58883fc43 100644 --- a/harbour/source/compiler/genjava.c +++ b/harbour/source/compiler/genjava.c @@ -127,6 +127,8 @@ void hb_compGenJava( PHB_FNAME pFileName ) /* Generate functions data */ pFunc = hb_comp_functions.pFirst; + if( ! hb_comp_bStartProc ) + pFunc = pFunc->pNext; while( pFunc ) { diff --git a/harbour/source/compiler/genobj32.c b/harbour/source/compiler/genobj32.c index 7f0b053b31..1b8da1d976 100644 --- a/harbour/source/compiler/genobj32.c +++ b/harbour/source/compiler/genobj32.c @@ -129,6 +129,9 @@ static ULONG GetPCodesSize( void ) ULONG ulTotal = 0; PFUNCTION pFunction = hb_comp_functions.pFirst; + if( ! hb_comp_bStartProc ) + pFunction = pFunction->pNext; + while( pFunction ) { ulTotal += pFunction->lPCodePos; @@ -278,9 +281,9 @@ static void GenerateDataSegment( FILE * hObjFile ) static void GenerateCodeSegment( FILE * hObjFile ) { - USHORT wFunctions = hb_comp_functions.iCount; + USHORT wFunctions = hb_comp_functions.iCount - ( hb_comp_bStartProc ? 0: 1 ); ULONG ulSize = wFunctions * sizeof( prgFunction ); - PFUNCTION pFunc = hb_comp_functions.pFirst; + PFUNCTION pFunc = ( hb_comp_bStartProc ? hb_comp_functions.pFirst: hb_comp_functions.pFirst->pNext ); USHORT w = 0; DefineSegment( hObjFile, 2, /* "_TEXT" position + 1 into localNames */ @@ -466,6 +469,9 @@ static void CodeSegment( FILE * hObjFile, BYTE * prgCode, ULONG ulPrgLen, USHORT PFUNCTION pFunction = hb_comp_functions.pFirst; ULONG ulPCodeOffset = hb_comp_symbols.iCount * sizeof( HB_SYMB ); + if( ! hb_comp_bStartProc ) + pFunction = pFunction->pNext; + putbyte( 0xA0, hObjFile, &bChk ); putword( wTotalLen, hObjFile, &bChk ); putbyte( 1, hObjFile, &bChk ); /* 1 = _TEXT segment */ @@ -494,6 +500,9 @@ static void DataSegment( FILE * hObjFile, BYTE * symbol, ULONG wSymLen, ULONG wS ULONG ulSymbolNameOffset = GetSymbolsSize() + GetPCodesSize(); ULONG ulFunctionOffset; + if( ! hb_comp_bStartProc ) + pFunction = pFunction->pNext; + putbyte( 0xA0, hObjFile, &bChk ); putword( wTotalLen, hObjFile, &bChk ); putbyte( 4, hObjFile, &bChk ); /* 2 = _DATA segment defined order */ diff --git a/harbour/source/compiler/harbour.c b/harbour/source/compiler/harbour.c index 6bacca5787..6b658ecd1d 100644 --- a/harbour/source/compiler/harbour.c +++ b/harbour/source/compiler/harbour.c @@ -2490,6 +2490,18 @@ int hb_compStaticGetPos( char * szVarName, PFUNCTION pFunc ) return iVar; } +char * hb_compStaticGetName( USHORT wVar ) +{ + PVAR pVar = NULL; + PFUNCTION pTmp = hb_comp_functions.pFirst; + + while( pTmp->pNext && pTmp->pNext->iStaticsBase < wVar ) + pTmp = pTmp->pNext; + pVar = hb_compVariableFind( pTmp->pStatics, wVar - pTmp->iStaticsBase ); + + return pVar ? pVar->szName : NULL; +} + /* Checks if passed variable name is declared as FIELD * Returns 0 if not found in FIELD list or its position in this list if found */ @@ -4969,6 +4981,13 @@ int hb_compCompile( char * szPrg, int argc, char * argv[], BOOL bSingleFile ) hb_compOutputFile(); pFunPtr = &hb_comp_functions.pFirst; + if( ! hb_comp_bStartProc ) + { + /* skip first non-startup procedure */ + hb_compOptimizeFrames( *pFunPtr ); + pFunPtr = &(*pFunPtr)->pNext; + } + while( *pFunPtr ) { /* remove function frames with no names */ diff --git a/harbour/source/pp/ppcore.c b/harbour/source/pp/ppcore.c index f8970e7bce..9613b69a92 100644 --- a/harbour/source/pp/ppcore.c +++ b/harbour/source/pp/ppcore.c @@ -3884,20 +3884,12 @@ int hb_pp_RdStr( FILE * handl_i, char *buffer, int maxlen, BOOL lContinue, char while( --readed >= 0 && ( buffer[readed] == ' ' || buffer[readed] == '\t' ) ) ; - /* rglab: start */ - if( cha == '\n' && readed < 0 ) - { - readed = 0; - buffer[readed] = ' '; /* return an empty line */ - } - - /* rglab: end */ if( buffer[readed] != ';' && s_ParseState != STATE_COMMENT ) { s_ParseState = STATE_NORMAL; } - if( maxlen ) + if( maxlen ) { if( readed < maxlen ) readed++; diff --git a/harbour/utils/hbpptest/pretest.prg b/harbour/utils/hbpptest/pretest.prg index f2c156cbc4..3c423e3de4 100644 --- a/harbour/utils/hbpptest/pretest.prg +++ b/harbour/utils/hbpptest/pretest.prg @@ -372,7 +372,7 @@ ENDTEXT in := " index on LEFT( f1 , 10 ) to _tst" CTEXT TO VAR pre -dbCreateIndex( "_tst", "LEFT( f1 , 10 )", {||LEFT( f1 , 10 )}, if( .F., .t., NIL ) ) +dbCreateIndex( "_tst", "LEFT( f1 , 10 )", {|| LEFT( f1 , 10 )}, if( .F., .T., NIL ) ) ENDTEXT nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) @@ -497,15 +497,15 @@ ENDTEXT /* Special restricted macro match marker (used in SET FILTER TO command */ in := "SET FILTER TO &cVar." - pre := "if ( Empty(cVar) ) ; dbClearFilter() ; else ; dbSetFilter({||&cVar.},cVar) ; end" + pre := "if ( Empty(cVar) ) ; dbClearFilter() ; else ; dbSetFilter({|| &cVar.},cVar) ; end" nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in := "SET FILTER TO &(cVar .AND. &cVar)" - pre := "if ( Empty((cVar .AND. &cVar)) ) ; dbClearFilter() ; else ; dbSetFilter({||&(cVar .AND. &cVar)},(cVar .AND. &cVar)) ; end" + pre := "if ( Empty((cVar .AND. &cVar)) ) ; dbClearFilter() ; else ; dbSetFilter({|| &(cVar .AND. &cVar)},(cVar .AND. &cVar)) ; end" nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in := "SET FILTER TO &cVar. .AND. cVar" - pre := 'dbSetFilter( {||&cVar. .AND. cVar}, "&cVar. .AND. cVar" )' + pre := 'dbSetFilter( {|| &cVar. .AND. cVar}, "&cVar. .AND. cVar" )' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) CTEXT TO VAR in @@ -997,23 +997,23 @@ ENDTEXT nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in := '@ 0,3 GET a PICTURE "X" VALID .T.' - pre := 'SetPos(0,3 ) ; AAdd(GetList,_GET_(a,"a","X",{||.T.}, ) ) ; ATail(GetList):Display()' + pre := 'SetPos(0,3 ) ; AAdd(GetList,_GET_(a,"a","X",{|| .T.}, ) ) ; ATail(GetList):Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in := '@ 0,4 GET a PICTURE "X" VALID .T. WHEN .T.' - pre := 'SetPos(0,4 ) ; AAdd(GetList,_GET_(a,"a","X",{||.T.},{||.T.} ) ) ; ATail(GetList):Display()' + pre := 'SetPos(0,4 ) ; AAdd(GetList,_GET_(a,"a","X",{|| .T.},{|| .T.} ) ) ; ATail(GetList):Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in := '@ 0,5 GET a PICTURE "X" VALID .T. WHEN .T. CAPTION "myget"' - pre := 'SetPos(0,5 ) ; AAdd(GetList,_GET_(a,"a","X",{||.T.},{||.T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):Display()' + pre := 'SetPos(0,5 ) ; AAdd(GetList,_GET_(a,"a","X",{|| .T.},{|| .T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in := '@ 0,6 GET a PICTURE "X" VALID .T. WHEN .T. CAPTION "myget" MESSAGE "mymess"' - pre := 'SetPos(0,6 ) ; AAdd(GetList,_GET_(a,"a","X",{||.T.},{||.T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):message := "mymess" ; ATail(GetList):Display()' + pre := 'SetPos(0,6 ) ; AAdd(GetList,_GET_(a,"a","X",{|| .T.},{|| .T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):message := "mymess" ; ATail(GetList):Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in := '@ 0,7 GET a PICTURE "X" VALID .T. WHEN .T. CAPTION "myget" MESSAGE "mymess" SEND send()' - pre := 'SetPos(0,7 ) ; AAdd(GetList,_GET_(a,"a","X",{||.T.},{||.T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):message := "mymess" ; ATail(GetList):send() ; ATail(GetList):Display()' + pre := 'SetPos(0,7 ) ; AAdd(GetList,_GET_(a,"a","X",{|| .T.},{|| .T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):message := "mymess" ; ATail(GetList):send() ; ATail(GetList):Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) /* ---------------------------------------------------------------------*/ @@ -1027,23 +1027,23 @@ ENDTEXT /* NOTE: Clipper fails here */ in :='@ 1,3 GET a PICTURE "X" VALID .T. RANGE 0,100' - pre := 'SetPos(1,3 ) ; AAdd(GetList,_GET_(a,"a","X",{||.T.}, ) ) ; ATail(GetList):Display()' + pre := 'SetPos(1,3 ) ; AAdd(GetList,_GET_(a,"a","X",{|| .T.}, ) ) ; ATail(GetList):Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 1,4 GET a PICTURE "X" WHEN .T. RANGE 0,100' - pre := 'SetPos(1,4 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{||.T.} ) ) ; ATail(GetList):Display()' + pre := 'SetPos(1,4 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{|| .T.} ) ) ; ATail(GetList):Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 1,5 GET a PICTURE "X" WHEN .T. CAPTION "myget" RANGE 0,100' - pre := 'SetPos(1,5 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{||.T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):Display()' + pre := 'SetPos(1,5 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{|| .T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 1,6 GET a PICTURE "X" WHEN .T. CAPTION "myget" MESSAGE "mymess" RANGE 0,100' - pre := 'SetPos(1,6 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{||.T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):message := "mymess" ; ATail(GetList):Display()' + pre := 'SetPos(1,6 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{|| .T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):message := "mymess" ; ATail(GetList):Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 1,7 GET a PICTURE "X" WHEN .T. CAPTION "myget" MESSAGE "mymess" SEND send() RANGE 0,100' - pre := 'SetPos(1,7 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{||.T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):message := "mymess" ; ATail(GetList):send() ; ATail(GetList):Display()' + pre := 'SetPos(1,7 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{|| .T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):message := "mymess" ; ATail(GetList):send() ; ATail(GetList):Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 2,1 GET a' @@ -1059,19 +1059,19 @@ ENDTEXT nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 2,4 GET a PICTURE "X" RANGE 0,100 WHEN .T.' - pre := 'SetPos(2,4 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{||.T.} ) ) ; ATail(GetList):Display()' + pre := 'SetPos(2,4 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{|| .T.} ) ) ; ATail(GetList):Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 2,5 GET a PICTURE "X" RANGE 0,100 WHEN .T. CAPTION "myget"' - pre := 'SetPos(2,5 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{||.T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):Display()' + pre := 'SetPos(2,5 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{|| .T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 2,6 GET a PICTURE "X" RANGE 0,100 WHEN .T. CAPTION "myget" MESSAGE "mymess"' - pre := 'SetPos(2,6 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{||.T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):message := "mymess" ; ATail(GetList):Display()' + pre := 'SetPos(2,6 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{|| .T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):message := "mymess" ; ATail(GetList):Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 2,7 GET a PICTURE "X" RANGE 0,100 WHEN .T. CAPTION "myget" MESSAGE "mymess" SEND send()' - pre := 'SetPos(2,7 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{||.T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):message := "mymess" ; ATail(GetList):send() ; ATail(GetList):Display()' + pre := 'SetPos(2,7 ) ; AAdd(GetList,_GET_(a,"a","X",{|_1| RangeCheck(_1,, 0, 100)},{|| .T.} ) ) ; ATail(GetList):Caption := "myget" ; ATail(GetList):CapRow := ATail(Getlist):row ; ATail(GetList):CapCol := ATail(Getlist):col - __CapLength("myget") - 1 ; ATail(GetList):message := "mymess" ; ATail(GetList):send() ; ATail(GetList):Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) @@ -1114,59 +1114,59 @@ ENDTEXT nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON VALID valid()' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()}, ) ) ; ATail(GetList):Control := _PushButt_(,,,,,,,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()}, ) ) ; ATail(GetList):Control := _PushButt_(,,,,,,,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON VALID valid() WHEN when()' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_(,,,,,,,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_(,,,,,,,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON VALID valid() WHEN when() CAPTION "cap"' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_("cap",,,,,,,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_("cap",,,,,,,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON VALID valid() WHEN when() CAPTION "cap" MESSAGE "mes"' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",,,,,,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",,,,,,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON VALID valid() WHEN when() CAPTION "cap" MESSAGE "mes" COLOR color()' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),,,,,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),,,,,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON VALID valid() WHEN when() CAPTION "cap" MESSAGE "mes" COLOR color() FOCUS focus()' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{||focus()},,,,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{|| focus()},,,,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON VALID valid() WHEN when() CAPTION "cap" MESSAGE "mes" COLOR color() FOCUS focus() STATE state()' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{||focus()},{||state()},,,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{|| focus()},{|| state()},,,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON VALID valid() WHEN when() CAPTION "cap" MESSAGE "mes" COLOR color() FOCUS focus() STATE state() STYLE style()' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{||focus()},{||state()},style(),,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{|| focus()},{|| state()},style(),,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON VALID valid() WHEN when() CAPTION "cap" MESSAGE "mes" COLOR color() FOCUS focus() STATE state() STYLE style() SEND send()' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{||focus()},{||state()},style(),,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):send() ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{|| focus()},{|| state()},style(),,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):send() ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON VALID valid() WHEN when() CAPTION "cap" MESSAGE "mes" COLOR color() FOCUS focus() STATE state() STYLE style() SEND send() GUISEND guisend()' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{||focus()},{||state()},style(),,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):send() ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{|| focus()},{|| state()},style(),,,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):send() ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON VALID valid() WHEN when() CAPTION "cap" MESSAGE "mes" COLOR color() FOCUS focus() STATE state() STYLE style() SEND send() GUISEND guisend() SIZE X 100 Y 100' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{||focus()},{||state()},style(),100,100,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):send() ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{|| focus()},{|| state()},style(),100,100,,,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):send() ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON VALID valid() WHEN when() CAPTION "cap" MESSAGE "mes" COLOR color() FOCUS focus() STATE state() STYLE style() SEND send() GUISEND guisend() SIZE X 100 Y 100 CAPOFF X 10 Y 10' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{||focus()},{||state()},style(),100,100,10,10,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):send() ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{|| focus()},{|| state()},style(),100,100,10,10,,, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):send() ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON VALID valid() WHEN when() CAPTION "cap" MESSAGE "mes" COLOR color() FOCUS focus() STATE state() STYLE style() SEND send() GUISEND guisend() SIZE X 100 Y 100 CAPOFF X 10 Y 10 BITMAP bitmap()' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{||focus()},{||state()},style(),100,100,10,10,bitmap(),, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):send() ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{|| focus()},{|| state()},style(),100,100,10,10,bitmap(),, ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):send() ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON VALID valid() WHEN when() CAPTION "cap" MESSAGE "mes" COLOR color() FOCUS focus() STATE state() STYLE style() SEND send() GUISEND guisend() SIZE X 100 Y 100 CAPOFF X 10 Y 10 BITMAP bitmap() BMPOFF X 2 Y 2' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{||focus()},{||state()},style(),100,100,10,10,bitmap(),2,2 ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):send() ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes",color(),{|| focus()},{|| state()},style(),100,100,10,10,bitmap(),2,2 ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):send() ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON COLOR "W/N"' @@ -1174,15 +1174,15 @@ ENDTEXT nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON COLOR "W/N" SIZE X 100 Y 100 BMPOFF X 2 Y 2 VALID valid() GUISEND guisend() WHEN when() MESSAGE "mes"' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_(,"mes","W/N",,,,100,100,,,,2,2 ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_(,"mes","W/N",,,,100,100,,,,2,2 ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON SIZE X 100 Y 100 BMPOFF X 2 Y 2 VALID valid() GUISEND guisend() WHEN when() MESSAGE "mes" COLOR "W/N"' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_(,"mes","W/N",,,,100,100,,,,2,2 ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_(,"mes","W/N",,,,100,100,,,,2,2 ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) in :='@ 4,1 GET a PUSHBUTTON SIZE X 100 Y 100 BMPOFF X 2 Y 2 VALID valid() GUISEND guisend() WHEN when() MESSAGE "mes" COLOR "W/N" CAPOFF X 10 Y 10 FOCUS focus() STATE state() STYLE style() SEND send() BITMAP bitmap() CAPTION "cap"' - pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{||valid()},{||when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes","W/N",{||focus()},{||state()},style(),100,100,10,10,bitmap(),2,2 ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):send() ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' + pre := 'SetPos(4,1 ) ; AAdd(GetList,_GET_(a,"a",NIL,{|| valid()},{|| when()} ) ) ; ATail(GetList):Control := _PushButt_("cap","mes","W/N",{|| focus()},{|| state()},style(),100,100,10,10,bitmap(),2,2 ) ; ATail(GetList):reader := { | a,b,c,d | GuiReader(a,b,c,d ) } ; ATail(GetList):send() ; ATail(GetList):Control:guisend() ; ATail(GetList):Control:Display()' nRes += PreResult( pre, PreRun( in, pre ), @nCnt ) TEXT TO VAR in