* contrib/hbct/tests/charhist.prg
* contrib/hbct/tests/csetarge.prg
* contrib/hbgd/tests/gdtestcl.prg
* examples/hbapollo/array.prg
* examples/httpsrv/uhttpd.prg
* formatting
* contrib/hbmisc/tests/rtfclass.prg
! fixes
* contrib/hbmisc/tests/rtfclass.prg
* contrib/hbgd/tests/gdtestcl.prg
! fixed to not use OS() with string
comparisons to detect host OS
* contrib/gtwvg/wvgdlg.prg
* contrib/hbide/ideactions.prg
* contrib/hbide/ideconsole.prg
* contrib/hbide/idemain.prg
* contrib/hbide/idemisc.prg
* contrib/hbide/idetags.prg
* contrib/hbxbp/tests/xbpqtc.prg
* examples/gfspell/spell.prg
* examples/gtwvw/tests/cbtest6.prg
* examples/gtwvw/tests/ebtest7.prg
* examples/gtwvw/tests/prog0.prg
* examples/gtwvw/tests/prog1.prg
* examples/gtwvw/tests/prog2.prg
* examples/gtwvw/tests/wvwtest9.prg
* examples/hbvpdf/hbvpdf.prg
* examples/hbxlsxml/xlsxml_y.prg
* examples/hbxlsxml/xlsxml.prg
* tests/codebloc.prg
* tests/langmsg.prg
* tests/memvar.prg
* tests/statics.prg
* tests/testwarn.prg
* tests/tstmacro.prg
% removed superfluous parantheses from RETURN statements
* examples/hbapollo/tests/test65.prg
* examples/hbapollo/tests/test66.prg
* examples/hbapollo/tests/test77.prg
! fixed looking for Windows in fixed location
* examples/hbapollo/tests/test25.prg
* examples/hbapollo/tests/test34.prg
* examples/hbapollo/tests/test35.prg
* examples/hbapollo/tests/test36.prg
* examples/hbapollo/tests/test37.prg
* examples/hbapollo/tests/test38.prg
* examples/hbapollo/tests/test49.prg
* examples/hbapollo/tests/test53.prg
* examples/hbapollo/tests/test56.prg
* examples/hbapollo/tests/test57.prg
* examples/hbapollo/tests/test58.prg
! removed most hard-wired windows locations
127 lines
2.6 KiB
Plaintext
127 lines
2.6 KiB
Plaintext
/*
|
|
* $Id$
|
|
*/
|
|
|
|
// codeblocks test
|
|
|
|
PROCEDURE Main()
|
|
|
|
LOCAL B := "this will never print"
|
|
LOCAL a := {| b, c | OutStd( "I am a codeblock" + b + c ) }
|
|
LOCAL d
|
|
LOCAL de
|
|
LOCAL ar := { 1, 2 }
|
|
LOCAL YY, X
|
|
LOCAL x1, x2
|
|
|
|
OutStd( "this should print first" )
|
|
OutStd( hb_eol() )
|
|
|
|
Eval( a, " with parameters", " ... and it works!" )
|
|
OutStd( hb_eol() )
|
|
|
|
d := "with access to local variables"
|
|
|
|
a := {| b, c | OutStd( "I am a second codeblock " + d + b + ;
|
|
iif( c == NIL, " empty second parameter ", c ) ), OutStd( hb_eol() ), "WITH return value" }
|
|
Eval( a, ", codeblock parameters" )
|
|
OutStd( hb_eol() )
|
|
|
|
Eval( a, ", codeblock parameters ", "and with second parameter" )
|
|
OutStd( hb_eol() )
|
|
|
|
OutStd( MyEval( a ) )
|
|
OutStd( hb_eol() )
|
|
|
|
OtherTest( a )
|
|
OutStd( hb_eol() )
|
|
|
|
AnotherTest( a, "==> Another " )
|
|
OutStd( hb_eol() )
|
|
|
|
a := {| c | iif( c == NIL, {| a | "First " + a }, {| a | "Second " + a } ) }
|
|
a := Eval( a )
|
|
OutStd( hb_eol() )
|
|
OutStd( Eval( a, "codeblock created in a codeblock" ) )
|
|
OutStd( hb_eol() )
|
|
|
|
OutStd( ar[ 1 ] )
|
|
OutStd( hb_eol() )
|
|
a := {|| ar[ 1 ] ++ }
|
|
Eval( a )
|
|
OutStd( ar[ 1 ] )
|
|
OutStd( hb_eol() )
|
|
|
|
yy := 5
|
|
x := {| xx | OutStd( LTrim( Str(xx ) ) ), OutStd( "+" ), OutStd( LTrim( Str(yy ) ) ), OutStd( "=" ), xx + yy }
|
|
OutStd( Eval( x, 1 ) ) //this is OK
|
|
OutStd( hb_eol() )
|
|
OutStd( Eval( x, 1, 2 ) ) //this should ignore unnecesary parameters
|
|
|
|
QOut( Eval( RetBlock(), 5 ) )
|
|
|
|
// BugToFix()
|
|
OutStd( hb_eol() )
|
|
|
|
OutStd( "Trying to use detached variable ..." )
|
|
OutStd( hb_eol() )
|
|
x1 := 5
|
|
x2 := 6
|
|
de := DetachLocal( x1, x2 )
|
|
OutStd( Eval( de ) )
|
|
//changing the value of variables
|
|
OutStd( hb_eol() )
|
|
x1 := 10
|
|
x2 := 11
|
|
QOut( Eval( de ) )
|
|
de := DetachLocal( x1, x2 )
|
|
QOut( Eval( de ) )
|
|
|
|
RETURN
|
|
|
|
FUNCTION MyEval( bCodeBlock )
|
|
|
|
LOCAL D := "this is another variable"
|
|
|
|
RETURN Eval( bCodeBlock, " from ", "MyEval Function" )
|
|
|
|
PROCEDURE OtherTest( cblock )
|
|
|
|
LOCAL cb
|
|
|
|
cb := {| a, b | Eval( cblock, a, b ) }
|
|
|
|
Eval( cb, "--> with nested ", "EVAL" )
|
|
|
|
RETURN
|
|
|
|
PROCEDURE AnotherTest( cb, a )
|
|
|
|
OutStd( Eval( cb, a ) )
|
|
OutStd( Chr( 13 ) + Chr( 10 ) )
|
|
OutStd( Eval( cb, a, "again and again" ) )
|
|
OutStd( Chr( 13 ) + Chr( 10 ) )
|
|
|
|
RETURN
|
|
|
|
FUNCTION DetachLocal( x, y )
|
|
|
|
//NOTE! this should work
|
|
LOCAL z := x + y
|
|
LOCAL cb := {|| QOut( "z=x+y=" ), QOut( z ), QOut( "x*x=" ), QOut( x * x ), QOut( "x*x+z=" ), x * x + z }
|
|
|
|
RETURN cb
|
|
|
|
PROCEDURE BugToFix()
|
|
|
|
LOCAL b, a := {|| a + b }
|
|
|
|
b := "bug "
|
|
Eval( a )
|
|
|
|
RETURN
|
|
|
|
FUNCTION RetBlock()
|
|
|
|
RETURN {| x | x * x }
|