Bug 8965 - Allow FIELDQTY to work with both variables and dialplan functions

git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@53074 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Tilghman Lesher
2007-02-01 20:07:35 +00:00
parent bc926d7f33
commit f8bed34be9

View File

@@ -41,17 +41,18 @@
static char *function_fieldqty(struct ast_channel *chan, char *cmd, char *data, char *buf, size_t len)
{
char *varname, *varval;
char *varname, *varsubst, varval[8192] = "", *varval2 = varval;
char *delim = ast_strdupa(data);
int fieldcount = 0;
if (delim) {
varname = strsep(&delim, "|");
varval = pbx_builtin_getvar_helper(chan, varname);
if (varval)
varval = ast_strdupa(varval);
varsubst = alloca(strlen(varname) + 4);
sprintf(varsubst, "${%s}", varname);
pbx_substitute_variables_helper(chan, varsubst, varval, sizeof(varval) - 1);
if (delim) {
while (strsep(&varval, delim))
while (strsep(&varval2, delim))
fieldcount++;
} else if (!ast_strlen_zero(varval)) {
fieldcount = 1;