diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 6323f7b91c..66b12084fc 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,3 +1,7 @@ +19991215-13:35 GMT+3 Alexander Kresin + * source/pp/hbpp.c + * Bug fixed, reported by Victor Szel + 19991215-09:34 GMT+1 Antonio Linares * include/hbclass.ch * ERROR HANDLER and ON ERROR METHODs defined (they are equivalent) diff --git a/harbour/source/pp/hbpp.c b/harbour/source/pp/hbpp.c index e7e5b2e890..5a0f8d580e 100644 --- a/harbour/source/pp/hbpp.c +++ b/harbour/source/pp/hbpp.c @@ -947,7 +947,8 @@ static int CommandStuff( char * ptrmp, char * inputLine, char * ptro, int * lenr HB_SKIPTABSPACES( ptrmp ); if( *ptrmp == '[' && !s_numBrackets && !strtopti ) strtopti = ptrmp; - if( !s_numBrackets && strtopti && strtptri != ptri && ISNAME( *ptri ) ) + if( !s_numBrackets && strtopti && strtptri != ptri && + ( ISNAME( *ptri ) || *ptri=='&' ) ) { strtptri = ptri; ptrmp = strtopti; @@ -1281,7 +1282,7 @@ static int WorkMarkers( char ** ptrmp, char ** ptri, char * ptro, int * lenres, static int getExpReal( char * expreal, char ** ptri, BOOL prlist, int maxrez ) { int lens = 0; - char * sZnaki = "+-=><*/$.&:#%!^"; + char * sZnaki = "+-=><*/$.:#%!^"; int State; int StBr1 = 0, StBr2 = 0, StBr3 = 0; BOOL rez = FALSE; @@ -1316,7 +1317,7 @@ static int getExpReal( char * expreal, char ** ptri, BOOL prlist, int maxrez ) break; case STATE_ID: case STATE_ID_END: - if( ( (ISNAME(**ptri) || **ptri=='\\') && State == STATE_ID_END ) || + if( ( (ISNAME(**ptri) || **ptri=='\\' || **ptri=='&') && State == STATE_ID_END ) || **ptri==',' || **ptri=='\'' || **ptri=='\"' || **ptri==')' ) { if( **ptri == ',' )