diff options
author | Rainer Gerhards <rgerhards@adiscon.com> | 2012-09-17 16:23:15 +0200 |
---|---|---|
committer | Rainer Gerhards <rgerhards@adiscon.com> | 2012-09-17 16:23:15 +0200 |
commit | 447f0e6421f2576d57623a398f90b8dd2eb8becf (patch) | |
tree | 70ee9ab7a5f665b50a8901d4c6bf8362a129c3a3 /grammar/rainerscript.c | |
parent | 1c68329a62c65244b8492e61aa7bbd5c795f50e6 (diff) | |
download | rsyslog-447f0e6421f2576d57623a398f90b8dd2eb8becf.tar.gz rsyslog-447f0e6421f2576d57623a398f90b8dd2eb8becf.tar.bz2 rsyslog-447f0e6421f2576d57623a398f90b8dd2eb8becf.zip |
new ruleengine: implement script concatenation (& operator)
Diffstat (limited to 'grammar/rainerscript.c')
-rw-r--r-- | grammar/rainerscript.c | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c index c7344628..05d489a3 100644 --- a/grammar/rainerscript.c +++ b/grammar/rainerscript.c @@ -1189,6 +1189,14 @@ cnfexprEval(struct cnfexpr *expr, struct var *ret, void* usrptr) ret->datatype = 'S'; ret->d.estr = cnfGetVar(((struct cnfvar*)expr)->name, usrptr); break; + case '&': + /* TODO: think about optimization, should be possible ;) */ + PREP_TWO_STRINGS; + ret->datatype = 'S'; + ret->d.estr = es_strdup(estr_l); + es_addStr(&ret->d.estr, estr_r); + FREE_TWO_STRINGS; + break; case '+': COMP_NUM_BINOP(+); break; @@ -1263,6 +1271,7 @@ cnfexprDestruct(struct cnfexpr *expr) case CMP_CONTAINSI: case OR: case AND: + case '&': case '+': case '-': case '*': |