diff options
Diffstat (limited to 'grammar/rainerscript.c')
-rw-r--r-- | grammar/rainerscript.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/grammar/rainerscript.c b/grammar/rainerscript.c index 9440dd2f..d0c2dc6b 100644 --- a/grammar/rainerscript.c +++ b/grammar/rainerscript.c @@ -1025,8 +1025,13 @@ evalVar(struct cnfvar *var, void *usrptr, struct var *ret) #define PREP_TWO_STRINGS \ cnfexprEval(expr->l, &l, usrptr); \ estr_l = var2String(&l, &bMustFree2); \ - cnfexprEval(expr->r, &r, usrptr); \ - estr_r = var2String(&r, &bMustFree) + if(expr->r->nodetype == 'S') { \ + estr_r = ((struct cnfstringval*)expr->r)->estr;\ + bMustFree = 0; \ + } else { \ + cnfexprEval(expr->r, &r, usrptr); \ + estr_r = var2String(&r, &bMustFree); \ + } #define FREE_TWO_STRINGS \ if(bMustFree) es_deleteStr(estr_r); \ |