change var parser to ${func(arg)}
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@5979 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
d4422c5970
commit
65b2ec6990
|
@ -1301,9 +1301,10 @@ SWITCH_DECLARE(char *) switch_channel_expand_variables(switch_channel_t *channel
|
||||||
|
|
||||||
if (*p == '$' && !nv) {
|
if (*p == '$' && !nv) {
|
||||||
if (*(p+1)) {
|
if (*(p+1)) {
|
||||||
vtype = 1;
|
if (*(p+1) == '{') {
|
||||||
if (*(p + 1) != '{') {
|
vtype = 1;
|
||||||
vtype = 2;
|
} else {
|
||||||
|
nv = 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
nv = 1;
|
nv = 1;
|
||||||
|
@ -1331,31 +1332,26 @@ SWITCH_DECLARE(char *) switch_channel_expand_variables(switch_channel_t *channel
|
||||||
e = s;
|
e = s;
|
||||||
vname = s;
|
vname = s;
|
||||||
while (*e) {
|
while (*e) {
|
||||||
if (!br && *e == ' ') {
|
|
||||||
*e++ = '\0';
|
|
||||||
sp++;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
if (br == 1 && *e == '}') {
|
if (br == 1 && *e == '}') {
|
||||||
br = 0;
|
br = 0;
|
||||||
*e++ = '\0';
|
*e++ = '\0';
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (vtype == 2) {
|
|
||||||
if (*e == '(') {
|
|
||||||
*e++ = '\0';
|
|
||||||
vval = e;
|
|
||||||
br = 2;
|
|
||||||
}
|
|
||||||
if (br == 2 && *e == ')') {
|
|
||||||
*e++ = '\0';
|
|
||||||
br = 0;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
e++;
|
e++;
|
||||||
}
|
}
|
||||||
p = 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) {
|
if (vtype == 1) {
|
||||||
sub_val = switch_channel_get_variable(channel, vname);
|
sub_val = switch_channel_get_variable(channel, vname);
|
||||||
|
|
Loading…
Reference in New Issue