2006-02-09 15:25 UTC+0100 Ryszard Glab <rglab@imid.med.pl>

* source/compiler/harbour.c
      * fixed to release memory allocated with the proeprocessor

   * tests/mousetst.prg
      * minor fix after latest Przemek changes

   * source/pp/ppcore.c
      * fixed bug in processing the list of optional repeatable code
      reported by Lorenzo
This commit is contained in:
Ryszard Glab
2006-02-09 14:17:25 +00:00
parent 3905d48d00
commit d15c80e28f
4 changed files with 35 additions and 9 deletions

View File

@@ -8,6 +8,17 @@
2002-12-01 13:30 UTC+0100 Foo Bar <foo.bar@foobar.org>
*/
* fixed <-x-> match marker
2006-02-09 15:25 UTC+0100 Ryszard Glab <rglab@imid.med.pl>
* source/compiler/harbour.c
* fixed to release memory allocated with the proeprocessor
* tests/mousetst.prg
* minor fix after latest Przemek changes
* source/pp/ppcore.c
* fixed bug in processing the list of optional repeatable code
reported by Lorenzo
2006-02-09 12:52 UTC+0100 Przemyslaw Czerpak (druzus/at/priv.onet.pl)
* harbour/bin/bld.cmd
+ added -ldbffpt, -lhbsix, -lhsx libraries for GCC OS2 linking

View File

@@ -261,7 +261,11 @@ int main( int argc, char * argv[] )
}
}
hb_pp_Free();
hb_compIdentifierClose();
if( hb_comp_pIncludePath )
hb_fsFreeSearchPath( hb_comp_pIncludePath );
if( (! bAnyFiles ) && (! hb_comp_bQuiet) )
{

View File

@@ -2874,10 +2874,11 @@ static void SearnRep( char * exppatt, char * expreal, int lenreal, char * ptro,
HB_TRACE(HB_TR_DEBUG, ("SearnRep(%s, %s, %d, %s, %p)", exppatt, expreal, lenreal, ptro, lenres));
if( *(exppatt+1) == '\0' ) *( ptro + *lenres ) = '\0';
if( *(exppatt+1) == '\0' )
*( ptro + *lenres ) = '\0';
while( (ifou = md_strAt( exppatt, (*(exppatt+1))? 2:1, ptrOut, FALSE, FALSE, TRUE, MD_STR_AT_USESUBCASE )) > 0 )
{
bFound = TRUE;
rezs = FALSE;
ptr = ptrOut + ifou - 2;
@@ -2885,8 +2886,11 @@ static void SearnRep( char * exppatt, char * expreal, int lenreal, char * ptro,
ptr = PrevSquare( ptr, ptro, &kolmarkers );
if( ptr )
{
if( s_Repeate ) s_aIsRepeate[ s_Repeate - 1 ]++;
if( !s_bReplacePat ) return;
if( s_Repeate )
s_aIsRepeate[ s_Repeate - 1 ]++;
if( !s_bReplacePat )
return;
ptr2 = ptrOut + ifou + 3;
while( *ptr2 != ']' || *(ptr2-1) == '\\' )
{
@@ -2900,7 +2904,7 @@ static void SearnRep( char * exppatt, char * expreal, int lenreal, char * ptro,
isdvig += ifou;
rezs = TRUE;
}
else
else if( s_Repeate )
{
if( lenreal == 0 )
{
@@ -2942,7 +2946,16 @@ static void SearnRep( char * exppatt, char * expreal, int lenreal, char * ptro,
rezs = TRUE;
}
}
else if( exppatt[0] == '\001' && exppatt[1] == '\000' )
{
/* final pass to remove optional markers */
hb_pp_Stuff( "", ptr, 0, ptr2-ptr+1, *lenres-(ptr-ptro) );
*lenres -= ptr2-ptr+1;
isdvig = ptr - ptro;
rezs = TRUE;
}
}
if( !rezs && s_bReplacePat )
{
if( *(ptrOut + ifou + 2) != '0' && *(exppatt+1) )
@@ -2962,7 +2975,8 @@ static void SearnRep( char * exppatt, char * expreal, int lenreal, char * ptro,
else if( !s_bReplacePat ) isdvig += ifou;
ptrOut = ptro + isdvig;
}
if( !bFound && s_Repeate ) s_aIsRepeate[ s_Repeate - 1 ]++;
if( !bFound && s_Repeate )
s_aIsRepeate[ s_Repeate - 1 ]++;
}
static BOOL ScanMacro( char * expreal, int lenitem, int * pNewLen )

View File

@@ -9,9 +9,6 @@
#include "inkey.ch"
#define K_MBUTTONDOWN 332 // any value
#define K_MBUTTONUP 331
PROCEDURE main()
LOCAL nR := 5, nC := 38