sigh
git-svn-id: http://svn.freeswitch.org/svn/freeswitch/trunk@6023 d0543943-73ff-0310-b7d9-9358b9ac24b2
This commit is contained in:
parent
d125f8a74b
commit
592ee146fb
|
@ -1264,28 +1264,44 @@ if ((dp = realloc(data, olen))) {\
|
||||||
|
|
||||||
SWITCH_DECLARE(char *) switch_channel_expand_variables(switch_channel_t *channel, char *in)
|
SWITCH_DECLARE(char *) switch_channel_expand_variables(switch_channel_t *channel, char *in)
|
||||||
{
|
{
|
||||||
char *p, *c;
|
char *q, *p, *c = NULL;
|
||||||
char *data, *indup;
|
char *data, *indup;
|
||||||
size_t sp = 0, len = 0, olen = 0, vtype = 0, br = 0, cpos, block = 128;
|
size_t sp = 0, len = 0, olen = 0, vtype = 0, br = 0, cpos, block = 128;
|
||||||
char *sub_val = NULL, *func_val = NULL;
|
char *sub_val = NULL, *func_val = NULL;
|
||||||
int nv = 0;
|
int nv = 0;
|
||||||
|
|
||||||
if (in && (p = strchr(in, '$'))) {
|
q = in;
|
||||||
if (!*(p + 1)) {
|
while(q && *q) {
|
||||||
return in;
|
if (!(p = strchr(q, '$'))) {
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
} else {
|
|
||||||
|
if (*(p-1) == '\\') {
|
||||||
|
q = p + 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (*(p+1) != '{') {
|
||||||
|
q = p + 1;
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
|
||||||
|
nv = 1;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!nv) {
|
||||||
return in;
|
return in;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nv = 0;
|
||||||
olen = strlen(in);
|
olen = strlen(in) + 1;
|
||||||
indup = strdup(in);
|
indup = strdup(in);
|
||||||
|
|
||||||
if ((data = malloc(olen))) {
|
if ((data = malloc(olen))) {
|
||||||
memset(data, 0, olen);
|
memset(data, 0, olen);
|
||||||
c = data;
|
c = data;
|
||||||
for (p = indup; *p; p++) {
|
for (p = indup; p && *p; p++) {
|
||||||
vtype = 0;
|
vtype = 0;
|
||||||
|
|
||||||
if (*p == '\\') {
|
if (*p == '\\') {
|
||||||
|
|
Loading…
Reference in New Issue