aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authormurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2008-07-30 22:02:07 +0000
committermurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2008-07-30 22:02:07 +0000
commitd5dc8e490c38cbad09e49fba3a26928542ae9525 (patch)
tree71464bb0d0881340b23edeaaf56e73175b679466
parentdf16a6676b846428fb60a0552077de4f8f145388 (diff)
(closes issue #13197)
Reported by: pj (closes issue #13051) Reported by: pj This patch substitutes commas in the expr supplied to the if () statement, as in if ( expr ) ... This solves both the bugs above, and makes the source symmetric with switch statements, which were earlier reported to need this sort of treatment. I tested this using the examples, both for the compiler and at run time. Looks good. git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@134652 f38db490-d61c-443f-a65b-d21fe96a405b
-rw-r--r--pbx/pbx_ael.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/pbx/pbx_ael.c b/pbx/pbx_ael.c
index 6a6e05eef..bd6775c08 100644
--- a/pbx/pbx_ael.c
+++ b/pbx/pbx_ael.c
@@ -3641,8 +3641,13 @@ static void gen_prios(struct ael_extension *exten, char *label, pval *statement,
if_end->type = AEL_APPCALL;
if ( p->type == PV_RANDOM )
snprintf(buf1,sizeof(buf1),"$[${RAND(0|99)} < (%s)]",p->u1.str);
- else
- snprintf(buf1,sizeof(buf1),"$[%s]",p->u1.str);
+ else {
+ char buf[8000];
+ strcpy(buf,p->u1.str);
+ substitute_commas(buf);
+ snprintf(buf1,sizeof(buf1),"$[%s]",buf);
+ }
+
if_test->app = 0;
if_test->appargs = strdup(buf1);
snprintf(buf1,sizeof(buf1),"Finish if-%s-%d", label, control_statement_count);