summaryrefslogtreecommitdiff
path: root/Bus/Ivy/IvyApplication.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'Bus/Ivy/IvyApplication.cxx')
-rw-r--r--Bus/Ivy/IvyApplication.cxx7
1 files changed, 7 insertions, 0 deletions
diff --git a/Bus/Ivy/IvyApplication.cxx b/Bus/Ivy/IvyApplication.cxx
index c4de075..c3f6f02 100644
--- a/Bus/Ivy/IvyApplication.cxx
+++ b/Bus/Ivy/IvyApplication.cxx
@@ -157,6 +157,7 @@ void IvyApplication::OnReceive(char * line)
#ifdef IVY_DEBUG
TRACE("Warning exp='%s' can't match removing from %s\n",arg,appname.c_str());
#endif //IVY_DEBUG
+ bus->CallBindingFilterCallback( this, id, arg );
return;
}
#ifdef USE_PCRE
@@ -185,11 +186,16 @@ void IvyApplication::OnReceive(char * line)
}
#endif
if ( regexp_in.size() < (id + 1) )
+ {
regexp_in.resize( id + 1 );
+ regexp_str_in.resize( id + 1 );
+ }
regexp_in[ id ] = exp;
+ regexp_str_in[ id ] = arg;
#ifdef IVY_DEBUG
TRACE("Adding regexp[%d]='%s' size: %d\n",id,arg,regexp_in.size());
#endif //IVY_DEBUG
+ bus->CallBindingAddCallback( this, id, arg );
break;
case DelRegexp:
@@ -199,6 +205,7 @@ void IvyApplication::OnReceive(char * line)
if ( regexp_in[id] )
{
exp = regexp_in[ id ];
+ bus->CallBindingRemoveCallback( this, id, regexp_str_in[id].c_str() );
#ifdef USE_PCRE
pcre_free( exp );
#else