From dc5211fc522f40069663ff8d39618f5bda1d943c Mon Sep 17 00:00:00 2001 From: Ron Pinkas Date: Fri, 2 Jun 2000 21:57:13 +0000 Subject: [PATCH] 2000-06-02 14:45 UTC-0800 Ron Pinkas * source/pp/ppcore.c ! Added logic to CommandStuff() to fix problem with Keyword or Match Marker are matched after non provided multiple optional patterns. --- harbour/ChangeLog | 23 +++++++++++++--------- harbour/source/pp/ppcore.c | 40 ++++++++++++++++++++++++++++++++++++++ 2 files changed, 54 insertions(+), 9 deletions(-) diff --git a/harbour/ChangeLog b/harbour/ChangeLog index 086089aa7b..59d991c2dd 100644 --- a/harbour/ChangeLog +++ b/harbour/ChangeLog @@ -1,16 +1,21 @@ +2000-06-02 14:45 UTC-0800 Ron Pinkas + + * source/pp/ppcore.c + ! Added logic to CommandStuff() to fix problem with Keyword or Match Marker are matched after non provided multiple optional patterns. + 2000-06-02 19:56 UTC+0100 Victor Szakats - * utils/hbtest/hbtest.prg - * utils/hbtest/make_xpp.bat - * utils/hbtest/make_xpp.cmd + * utils/hbtest/hbtest.prg + * utils/hbtest/make_xpp.bat + * utils/hbtest/make_xpp.cmd ! HBTEST was broken for Xbase++. Fixed. - * source/rtl/minmax.c - * source/rtl/mlpos.c - * source/rtl/mod.c - * source/rtl/mouseapi.c - * source/rtl/strmatch.c - * source/rtl/strtran.c + * source/rtl/minmax.c + * source/rtl/mlpos.c + * source/rtl/mod.c + * source/rtl/mouseapi.c + * source/rtl/strmatch.c + * source/rtl/strtran.c * Minor typos, formattings, optimizations. 2000-06-02 15:39 UTC+0100 Victor Szakats diff --git a/harbour/source/pp/ppcore.c b/harbour/source/pp/ppcore.c index 63447132f3..9cce469faf 100644 --- a/harbour/source/pp/ppcore.c +++ b/harbour/source/pp/ppcore.c @@ -1074,7 +1074,47 @@ static int CommandStuff( char * ptrmp, char * inputLine, char * ptro, int * lenr ptr = PrevSquare( ptr, strtopti, NULL ); if( ptr ) ptrmp = ptr; + /* Ron Pinkas added 2000-06-02 14:45 UTC-0800 */ + else if( *ptrmp == '[' ) + { + ptr = strtopti+ipos; + while ( ptr > strtopti && *(--ptr) != ']' ) ; + + { + char * ptrTemp; + + ptrTemp = ++ptrmp; + SkipOptional( &ptrmp ); + + while( *(ptrmp + 2) == '[' && ptrmp != ptrTemp ) + { + ptrmp += 3; + SkipOptional( &ptrmp ); + } + } + } + /* Ron Pinkas End */ } + /* Ron Pinkas added 2000-06-02 14:45 UTC-0800 */ + else if( ipos && *ptrmp == '[' ) + { + ptr = strtopti+ipos; + while ( ptr > strtopti && *(--ptr) != ']' ) ; + + { + char * ptrTemp; + + ptrTemp = ++ptrmp; + SkipOptional( &ptrmp ); + + while( *(ptrmp + 2) == '[' && ptrmp != ptrTemp ) + { + ptrmp += 3; + SkipOptional( &ptrmp ); + } + } + } + /* Ron Pinkas End */ } switch( *ptrmp ) { case '[':