*** empty log message ***

This commit is contained in:
Luis Krause
2003-10-21 17:29:00 +00:00
parent c6eea5cd0f
commit a8e297ad3f
3 changed files with 51 additions and 7 deletions

View File

@@ -8,10 +8,16 @@
2002-12-01 23:12 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
2003-10-21 10:23 UTC-0800 Luis Krause Mantilla <lkrausem@shaw.ca>
* source/vm/codebloc.c
! Fixed detached local bug (borrowed from xharbour)
* source/rdd/dbcmd.c
! Fixed bug in __dbLocate with When clause (borrowed from xharbour)
2003-10-20 13:45 UTC+0100 Ryszard Glab <rglab@przesiew.imid.med.pl>
* .cvsignore
* Restored previous version
* include/hbexpra.c
* include/hbexprb.c
* include/hbexprc.c
@@ -21,19 +27,19 @@
* source/compiler/exproptc.c
* source/compiler/harbour.sly
* fixed declaration mismatch in Simplex version
* fixed generation of string's pcode
* fixed generation of string's pcode
(introduced with my previous changes)
* source/pp/ppcore.c
* fixed support for stringify match markers <""> and <()> in Flex
version (for example &var.1 have to be expanded into "&var.1"
instead of var.1 since this is not a valid Clipper expression)
NOTICE! In Simplex version this is not fixed because it is
used as a hack to correctly support macro variables in GET
used as a hack to correctly support macro variables in GET
command.
* tests/testget.prg
* MEMVAR declaration was added
* MEMVAR declaration was added
2003-10-20 11:37 UTC+0300 Alexander Kresin <alex@belacy.belgorod.su>
* include/hbapi.h

View File

@@ -1521,6 +1521,39 @@ HB_FUNC( __DBLOCATE )
else
( ( AREAP ) s_pCurrArea->pArea )->fFound = ( bWhile && hb_itemGetL( pNewFor ) );
}
else if( pWhile )
{
if( hb_itemType( pWhile ) == HB_IT_BLOCK )
bWhile = hb_itemGetL( hb_vmEvalBlock( pWhile ) );
else
bWhile = TRUE;
if( hb_itemType( pNewFor ) == HB_IT_BLOCK )
bFor = hb_itemGetL( hb_vmEvalBlock( pNewFor ) );
else
bFor = hb_itemGetL( pNewFor );
if( pNext )
lNext = hb_parnl( 3 );
else
lNext = 0xffffffffu; /* maxed out */
while( !( ( AREAP ) s_pCurrArea->pArea )->fEof && lNext-- != 0 && bWhile && !bFor )
{
SELF_SKIP( ( AREAP ) s_pCurrArea->pArea, 1 );
if( ( ( AREAP ) s_pCurrArea->pArea )->fEof )
bFor = FALSE;
else
{
if( hb_itemType( pWhile ) == HB_IT_BLOCK )
bWhile = hb_itemGetL( hb_vmEvalBlock( pWhile ) );
else
bWhile = TRUE;
if( hb_itemType( pNewFor ) == HB_IT_BLOCK )
bFor = hb_itemGetL( hb_vmEvalBlock( pNewFor ) );
else
bFor = hb_itemGetL( pNewFor );
}
}
( ( AREAP ) s_pCurrArea->pArea )->fFound = bFor;
}
else if( pNext )
{
lNext = hb_parnl( 3 );
@@ -1582,7 +1615,7 @@ HB_FUNC( __DBLOCATE )
bFor = hb_itemGetL( pNewFor );
}
}
( ( AREAP ) s_pCurrArea->pArea )->fFound = bFor && bWhile;
( ( AREAP ) s_pCurrArea->pArea )->fFound = bFor;
}
else
{

View File

@@ -110,6 +110,11 @@ HB_CODEBLOCK_PTR hb_codeblockNew( BYTE * pBuffer,
*/
pLocal = hb_stackItemFromBase( *pLocalPosTable++ );
if( HB_IS_BYREF( pLocal ) )
{
pLocal = hb_itemUnRef( pLocal );
}
if( ! HB_IS_MEMVAR( pLocal ) )
{
/* Change the value only if this variable is not referenced