aboutsummaryrefslogtreecommitdiffstats
path: root/pbx/pbx_ael.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-08-26 20:08:28 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-08-26 20:08:28 +0000
commit5017d85472d1b525c336645fd9e3fbf40aa752ac (patch)
tree0a08cf039ce6e9ed09ea859f8db1a2b5dcbf8b5d /pbx/pbx_ael.c
parentb8d3c3896932035422f7b9dcbf93e0c05e565cfe (diff)
ignore equals-signs inside parens (issue #5022)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6424 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx/pbx_ael.c')
-rwxr-xr-xpbx/pbx_ael.c13
1 files changed, 12 insertions, 1 deletions
diff --git a/pbx/pbx_ael.c b/pbx/pbx_ael.c
index 585b1e7b5..a56c87ba7 100755
--- a/pbx/pbx_ael.c
+++ b/pbx/pbx_ael.c
@@ -435,8 +435,19 @@ static int match_assignment(char *variable, char **value)
{
char *c;
char *ws;
+ int inpar = 0;
c = variable;
- while(*c && (*c > 32) && (*c != '=')) c++;
+
+ while(*c && (*c > 32)) {
+ if(*c == ')' && (inpar > 0)) {
+ inpar--;
+ } else if(*c == '(' && (inpar >= 0)) {
+ inpar++;
+ } else if(*c == '=' && (inpar == 0)) {
+ break;
+ }
+ c++;
+ }
ws = c;
while(*c && (*c < 33)) c++;
if (*c == '=') {