2006-06-02 14:00 UTC+0100 Ryszard Glab <rglab//imid.med.pl>

* include/hbexpra.c
   * source/compiler/expropta.c
      * fixed bug in GET var[ any_one_dim_index ]

   * source/pp/ppcore.c
      * fixed BCC warning

      NOTICE: The above files are retagged to 'build46'
This commit is contained in:
Ryszard Glab
2006-06-02 11:43:30 +00:00
parent b7ec491c40
commit 886dc4fcbd
4 changed files with 27 additions and 4 deletions

View File

@@ -8,6 +8,16 @@
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
+ harbour/source/rdd/usrrdd/example/exrlx.prg
* example of using RLCDX RDD
+ harbour/source/rdd/usrrdd/example/exmemo.prg
* example of using DBTCDX, FPTCDX and SMTCDX RDDs
2006-06-02 14:15 UTC+0100 Ryszard Glab <rglab//imid.med.pl>
* harbour.spec
* updated to set version 0.46.1 for build46
2006-06-02 14:00 UTC+0100 Ryszard Glab <rglab//imid.med.pl>

View File

@@ -494,6 +494,11 @@ HB_EXPR_PTR hb_compExprNewFunCall( HB_EXPR_PTR pName, HB_EXPR_PTR pParms )
USHORT uiCount;
if( pArg->ExprType == HB_ET_ARRAYAT )
{
/* replace:
_GET_( a[1], "a[1]", , , )
into:
__GETA( {||a }, "a", , , , { 1 } )
*/
HB_EXPR_PTR pIndex, pVar;
HB_EXPR_PTR pBase;
@@ -583,8 +588,14 @@ HB_EXPR_PTR hb_compExprNewFunCall( HB_EXPR_PTR pName, HB_EXPR_PTR pParms )
}
}
}
pBase->value.asList.pExprList = NULL;
hb_compExprClear( pBase );
/* clear expressions no longer used */
while( pBase->ExprType == HB_ET_ARRAYAT )
{
pVar = pBase->value.asList.pExprList;
pBase->value.asList.pExprList = NULL;
hb_compExprClear( pBase );
pBase = pVar;
}
}
else if( pArg->ExprType == HB_ET_MACRO )
{

View File

@@ -5,6 +5,6 @@
/* hbexpra.c is also included from ../macro/macro.c
* However it produces a slighty different code if used in
* macro compiler (there is an additional parameter passed to some functions)
* 1.20 - ignore this magic number - this is used to force compilation
* 1.21 - ignore this magic number - this is used to force compilation
*/
#include "hbexpra.c"

View File

@@ -3412,7 +3412,7 @@ static int pp_Stringify( BOOL bSmart, char **ptro, int *lenres, char *expr, int
static int ReplacePattern( char patttype, char *expreal, int lenreal, char *ptro, int lenres )
{
int rmlen = lenreal, ifou, lenitem, i = 0;
int rmlen = lenreal, ifou, lenitem;
char sQuotes[4] = "\"\",";
HB_TRACE( HB_TR_DEBUG, ( "ReplacePattern(%c, %s, %d, %s, %p)", patttype, expreal, lenreal, ptro, lenres ) );
@@ -3495,6 +3495,8 @@ static int ReplacePattern( char patttype, char *expreal, int lenreal, char *ptro
lenitem = ( ifou ) ? ifou - 1 : lenreal;
if( *expreal != '\0' )
{
int i;
i = ( ifou ) ? 5 : 4;
hb_pp_Stuff( "{||},", ptro, i, 0, lenres );
hb_pp_Stuff( expreal, ptro + 3, lenitem, 0, lenres + i );