diff options
author | Kevin P. Fleming <kpfleming@digium.com> | 2005-08-26 20:08:28 +0000 |
---|---|---|
committer | Kevin P. Fleming <kpfleming@digium.com> | 2005-08-26 20:08:28 +0000 |
commit | ad21be9cc7a074075b4a1c0084d06815de2f9c51 (patch) | |
tree | 0a08cf039ce6e9ed09ea859f8db1a2b5dcbf8b5d /pbx/pbx_ael.c | |
parent | da627fc6433c5439181a9a7c942908153f0176a7 (diff) |
ignore equals-signs inside parens (issue #5022)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6424 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'pbx/pbx_ael.c')
-rwxr-xr-x | pbx/pbx_ael.c | 13 |
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 == '=') { |