aboutsummaryrefslogtreecommitdiffstats
path: root/pbx/pbx_ael.c
diff options
context:
space:
mode:
authormurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2006-12-30 00:51:07 +0000
committermurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2006-12-30 00:51:07 +0000
commitfc79f14afc23faf0f7b783c82bc513a894ebdc33 (patch)
treef925f1eb33b0a3923fe38ee07555936c41b83a5f /pbx/pbx_ael.c
parentf1571968711e3151a07394672c48d01c612391c5 (diff)
Merged revisions 49061 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.4 ........ r49061 | murf | 2006-12-29 17:40:37 -0700 (Fri, 29 Dec 2006) | 1 line A fix for 8661, where the CUT func needed to have comma args converted to vertical bars. I hope this change does little harm. ........ git-svn-id: http://svn.digium.com/svn/asterisk/trunk@49062 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx/pbx_ael.c')
-rw-r--r--pbx/pbx_ael.c17
1 files changed, 16 insertions, 1 deletions
diff --git a/pbx/pbx_ael.c b/pbx/pbx_ael.c
index 7d65e5065..74c0b6d40 100644
--- a/pbx/pbx_ael.c
+++ b/pbx/pbx_ael.c
@@ -149,6 +149,20 @@ static void fix_gotos_in_extensions(struct ael_extension *exten);
static pval *get_extension_or_contxt(pval *p);
static pval *get_contxt(pval *p);
static void remove_spaces_before_equals(char *str);
+static void substitute_commas(char *str);
+
+/* I am adding this code to substitute commas with vertbars in the args to apps */
+static void substitute_commas(char *str)
+{
+ char *p = str;
+ while (p && *p)
+ {
+ if (*p == ',' && ((p != str && *(p-1) != '\\')
+ || p == str))
+ *p = '|';
+ p++;
+ }
+}
/* PRETTY PRINTER FOR AEL: ============================================================================= */
@@ -208,7 +222,7 @@ static void print_pval(FILE *fin, pval *item, int depth)
fprintf(fin,"%s(", item->u1.str);
for (lp=item->u2.arglist; lp; lp=lp->next) {
if ( lp != item->u2.arglist )
- fprintf(fin,", ");
+ fprintf(fin,",");
fprintf(fin,"%s", lp->u1.str);
}
fprintf(fin,");\n");
@@ -3396,6 +3410,7 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
for (p2 = p->u2.arglist; p2; p2 = p2->next) {
if (p2 != p->u2.arglist )
strcat(buf1,"|");
+ substitute_commas(p2->u1.str);
strcat(buf1,p2->u1.str);
}
pr->app = strdup(p->u1.str);