]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Bug 8965 - Allow FIELDQTY to work with both variables and dialplan functions
authorTilghman Lesher <tilghman@meg.abyt.es>
Thu, 1 Feb 2007 20:07:35 +0000 (20:07 +0000)
committerTilghman Lesher <tilghman@meg.abyt.es>
Thu, 1 Feb 2007 20:07:35 +0000 (20:07 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.2@53074 65c4cc65-6c06-0410-ace0-fbb531ad65f3

funcs/func_strings.c

index 6da95b54c2cc5e8b9ab2f287ed0236c596c6621f..00b6dd1720fc7c9b7a08f50fba97eff3b82e45da 100644 (file)
 
 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;