aboutsummaryrefslogtreecommitdiff
path: root/src/functionregexp.cpp
diff options
context:
space:
mode:
Diffstat (limited to '')
-rw-r--r--src/functionregexp.cpp19
1 files changed, 18 insertions, 1 deletions
diff --git a/src/functionregexp.cpp b/src/functionregexp.cpp
index d1491e6..57a1725 100644
--- a/src/functionregexp.cpp
+++ b/src/functionregexp.cpp
@@ -12,7 +12,7 @@ FunctionRegexp::~FunctionRegexp()
12{ 12{
13} 13}
14 14
15void FunctionRegexp::execute( const StringList &lInput, StringList &lOutput ) 15void FunctionRegexp::execute( Build *bld, const StringList &lInput, StringList &lOutput )
16{ 16{
17 if( lParams.size() == 1 ) 17 if( lParams.size() == 1 )
18 { 18 {
@@ -24,6 +24,16 @@ void FunctionRegexp::execute( const StringList &lInput, StringList &lOutput )
24 if( re.execute( (*i).c_str() ) ) 24 if( re.execute( (*i).c_str() ) )
25 { 25 {
26 lOutput.push_back( *i ); 26 lOutput.push_back( *i );
27 if( bld )
28 {
29 int jmax = re.getNumSubStrings();
30 for( int j = 0; j < jmax; j++ )
31 {
32 char buf[30];
33 sprintf( buf, "re:%d", j );
34 bld->set( *i, buf, re.getSubString( j ) );
35 }
36 }
27 } 37 }
28 } 38 }
29 } 39 }
@@ -32,3 +42,10 @@ void FunctionRegexp::execute( const StringList &lInput, StringList &lOutput )
32 } 42 }
33} 43}
34 44
45Function *FunctionRegexp::duplicate( Build &bld, const std::string &cont, VarMap *mExtra )
46{
47 Function *pRet = new FunctionRegexp();
48 pRet->copyData( this, bld, cont, mExtra );
49 return pRet;
50}
51