Author: anthm Date: Thu Oct 18 17:36:57 2007 New Revision: 5979 Modified: freeswitch/trunk/src/switch_channel.c Log: change var parser to ${func(arg)} Modified: freeswitch/trunk/src/switch_channel.c ============================================================================== --- freeswitch/trunk/src/switch_channel.c (original) +++ freeswitch/trunk/src/switch_channel.c Thu Oct 18 17:36:57 2007 @@ -1301,9 +1301,10 @@ if (*p == '$' && !nv) { if (*(p+1)) { - vtype = 1; - if (*(p + 1) != '{') { - vtype = 2; + if (*(p+1) == '{') { + vtype = 1; + } else { + nv = 1; } } else { nv = 1; @@ -1331,31 +1332,26 @@ e = s; vname = s; while (*e) { - if (!br && *e == ' ') { - *e++ = '\0'; - sp++; - break; - } if (br == 1 && *e == '}') { br = 0; *e++ = '\0'; break; } - if (vtype == 2) { - if (*e == '(') { - *e++ = '\0'; - vval = e; - br = 2; - } - if (br == 2 && *e == ')') { - *e++ = '\0'; - br = 0; - break; - } - } e++; } p = e; + + if ((vval = strchr(vname, '('))) { + e = vval - 1; + *vval++ = '\0'; + while(*e == ' ') { + *e-- = '\0'; + } + if ((e = strchr(vval, ')'))) { + *e = '\0'; + } + vtype = 2; + } if (vtype == 1) { sub_val = switch_channel_get_variable(channel, vname);