aboutsummaryrefslogtreecommitdiffstats
path: root/pbx
diff options
context:
space:
mode:
authormurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2006-10-04 19:57:08 +0000
committermurf <murf@f38db490-d61c-443f-a65b-d21fe96a405b>2006-10-04 19:57:08 +0000
commit66623b5e225ba1ad80282a89ad763f49acde2842 (patch)
treec161366ca635b93070ae6a12972966dfebf20fe0 /pbx
parentac1ade7444c3a81d76e879f6d3571aae3c8e7bae (diff)
These changes fix the problems reported in bug 8090
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@44380 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx')
-rw-r--r--pbx/ael/ael-test/ael-test16/extensions.ael4
-rw-r--r--pbx/ael/ael-test/ref.ael-ntest1017
-rw-r--r--pbx/ael/ael-test/ref.ael-ntest1217
-rw-r--r--pbx/ael/ael-test/ref.ael-ntest917
-rw-r--r--pbx/ael/ael-test/ref.ael-test120
-rw-r--r--pbx/ael/ael-test/ref.ael-test1114
-rw-r--r--pbx/ael/ael-test/ref.ael-test1412
-rw-r--r--pbx/ael/ael-test/ref.ael-test1516
-rw-r--r--pbx/ael/ael-test/ref.ael-test1614
-rw-r--r--pbx/ael/ael-test/ref.ael-test228
-rw-r--r--pbx/ael/ael-test/ref.ael-test326
-rw-r--r--pbx/ael/ael-test/ref.ael-test428
-rw-r--r--pbx/ael/ael-test/ref.ael-test516
-rw-r--r--pbx/ael/ael-test/ref.ael-test624
-rw-r--r--pbx/ael/ael-test/ref.ael-test720
-rw-r--r--pbx/ael/ael-test/ref.ael-test816
-rw-r--r--pbx/ael/ael.tab.c284
-rw-r--r--pbx/ael/ael.y16
-rw-r--r--pbx/pbx_ael.c4
19 files changed, 312 insertions, 281 deletions
diff --git a/pbx/ael/ael-test/ael-test16/extensions.ael b/pbx/ael/ael-test/ael-test16/extensions.ael
new file mode 100644
index 000000000..5f3b2e4e9
--- /dev/null
+++ b/pbx/ael/ael-test/ael-test16/extensions.ael
@@ -0,0 +1,4 @@
+context real-small {
+
+}
+
diff --git a/pbx/ael/ael-test/ref.ael-ntest10 b/pbx/ael/ael-test/ref.ael-ntest10
index e7eaa5b06..e15a653f3 100644
--- a/pbx/ael/ael-test/ref.ael-ntest10
+++ b/pbx/ael/ael-test/ref.ael-ntest10
@@ -5,11 +5,10 @@
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-Executed ast_cli_register_multiple();
-LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3760 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3821 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
Executed ast_context_create(conts, name=macro-endsess, registrar=pbx_ael);
Executed ast_context_create(conts, name=macro-nullchk, registrar=pbx_ael);
Executed ast_context_create(conts, name=macro-endcall, registrar=pbx_ael);
@@ -121,9 +120,9 @@ Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-out, prio
Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-out, priority=4, label=(null), callerid=(null), appl=Goto, data=sw-21-in|ptr1, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-out, priority=5, label=(null), callerid=(null), appl=NoOp, data=Finish if-sw-endcall5-out-16-17, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=macro-endcall5, rep=0, exten=sw-16-out, priority=6, label=(null), callerid=(null), appl=Goto, data=sw-16-in|1, FREE, registrar=pbx_ael);
-LOG: lev:2 file:../pbx/pbx_ael.c line:3762 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3823 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
Executed ast_merge_contexts_and_delete();
-LOG: lev:2 file:../pbx/pbx_ael.c line:3765 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3826 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
Executed ast_walk_contexts();
-LOG: lev:2 file:../pbx/pbx_ael.c line:3768 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse line:458 func: main 7 contexts, 17 extensions, 104 priorities
+LOG: lev:2 file:pbx_ael.c line:3829 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse line:479 func: main 7 contexts, 17 extensions, 104 priorities
diff --git a/pbx/ael/ael-test/ref.ael-ntest12 b/pbx/ael/ael-test/ref.ael-ntest12
index 37d4f233c..2c7c1ddfc 100644
--- a/pbx/ael/ael-test/ref.ael-ntest12
+++ b/pbx/ael/ael-test/ref.ael-ntest12
@@ -5,11 +5,10 @@
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-Executed ast_cli_register_multiple();
-LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3760 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3821 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
Executed ast_context_create(conts, name=test1, registrar=pbx_ael);
Executed ast_add_extension2(context=test1, rep=0, exten=771, priority=1, label=(null), callerid=(null), appl=Set, data=i=$[0], FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=test1, rep=0, exten=771, priority=2, label=(null), callerid=(null), appl=GotoIf, data=$[
@@ -24,9 +23,9 @@ Executed ast_add_extension2(context=test1, rep=0, exten=772, priority=3, label=(
Executed ast_add_extension2(context=test1, rep=0, exten=772, priority=4, label=(null), callerid=(null), appl=Set, data=i=$[ ${i} + 1 ], FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=test1, rep=0, exten=772, priority=5, label=(null), callerid=(null), appl=Goto, data=2, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=test1, rep=0, exten=772, priority=6, label=(null), callerid=(null), appl=NoOp, data=Finish for-test1-2, FREE, registrar=pbx_ael);
-LOG: lev:2 file:../pbx/pbx_ael.c line:3762 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3823 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
Executed ast_merge_contexts_and_delete();
-LOG: lev:2 file:../pbx/pbx_ael.c line:3765 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3826 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
Executed ast_walk_contexts();
-LOG: lev:2 file:../pbx/pbx_ael.c line:3768 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse line:458 func: main 1 contexts, 2 extensions, 12 priorities
+LOG: lev:2 file:pbx_ael.c line:3829 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse line:479 func: main 1 contexts, 2 extensions, 12 priorities
diff --git a/pbx/ael/ael-test/ref.ael-ntest9 b/pbx/ael/ael-test/ref.ael-ntest9
index af6b72f95..82f1d4220 100644
--- a/pbx/ael/ael-test/ref.ael-ntest9
+++ b/pbx/ael/ael-test/ref.ael-ntest9
@@ -5,11 +5,10 @@
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-Executed ast_cli_register_multiple();
-LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3760 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3821 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
Executed ast_context_create(conts, name=workext, registrar=pbx_ael);
Executed ast_context_add_ignorepat2(con, value=8, registrar=pbx_ael);
Executed ast_context_add_ignorepat2(con, value=9, registrar=pbx_ael);
@@ -17,9 +16,9 @@ Executed ast_add_extension2(context=workext, rep=0, exten=793, priority=1, label
Executed ast_add_extension2(context=workext, rep=0, exten=793, priority=2, label=(null), callerid=(null), appl=Verbose, data=2|${QUERYSTRING}, FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=workext, rep=0, exten=793, priority=3, label=(null), callerid=(null), appl=Set, data=query=$["SELECT foo\, bar FROM foobar" ], FREE, registrar=pbx_ael);
Executed ast_add_extension2(context=workext, rep=0, exten=793, priority=4, label=(null), callerid=(null), appl=Verbose, data=2|${query}, FREE, registrar=pbx_ael);
-LOG: lev:2 file:../pbx/pbx_ael.c line:3762 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3823 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
Executed ast_merge_contexts_and_delete();
-LOG: lev:2 file:../pbx/pbx_ael.c line:3765 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3826 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
Executed ast_walk_contexts();
-LOG: lev:2 file:../pbx/pbx_ael.c line:3768 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse line:458 func: main 1 contexts, 1 extensions, 4 priorities
+LOG: lev:2 file:pbx_ael.c line:3829 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse line:479 func: main 1 contexts, 1 extensions, 4 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test1 b/pbx/ael/ael-test/ref.ael-test1
index 0c7b31913..59d5928b9 100644
--- a/pbx/ael/ael-test/ref.ael-test1
+++ b/pbx/ael/ael-test/ref.ael-test1
@@ -2,13 +2,13 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:3 file:../pbx/pbx_ael.c line:899 func: check_dow Warning: file ./extensions.ael, line 67-67: The day (m0n) must be one of 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', or 'sat'!
-LOG: lev:3 file:../pbx/pbx_ael.c line:857 func: check_timerange Warning: file ./extensions.ael, line 78-78: The end time (25:00) is out of range!
-LOG: lev:2 file:../pbx/pbx_ael.c line:3760 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3762 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3765 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3768 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse line:458 func: main 5 contexts, 13 extensions, 156 priorities
+LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:3 file:pbx_ael.c line:897 func: check_dow Warning: file ./extensions.ael, line 67-67: The day (m0n) must be one of 'sun', 'mon', 'tue', 'wed', 'thu', 'fri', or 'sat'!
+LOG: lev:3 file:pbx_ael.c line:855 func: check_timerange Warning: file ./extensions.ael, line 78-78: The end time (25:00) is out of range!
+LOG: lev:2 file:pbx_ael.c line:3821 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3823 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3826 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3829 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse line:479 func: main 5 contexts, 13 extensions, 156 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test11 b/pbx/ael/ael-test/ref.ael-test11
index e1af8fa04..65a9ae7ac 100644
--- a/pbx/ael/ael-test/ref.ael-test11
+++ b/pbx/ael/ael-test/ref.ael-test11
@@ -2,10 +2,10 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:4 file:../pbx/pbx_ael.c line:1033 func: check_label Error: file ./extensions.ael, line 13-13: Duplicate label lab1! Previously defined at file ./extensions.ael, line 8.
-LOG: lev:4 file:../pbx/pbx_ael.c line:1033 func: check_label Error: file ./extensions.ael, line 49-49: Duplicate label ptr1! Previously defined at file ./extensions.ael, line 33.
-LOG: lev:4 file:../pbx/pbx_ael.c line:3770 func: pbx_load_module Sorry, but 0 syntax errors and 2 semantic errors were detected. It doesn't make sense to compile.
-LOG: lev:4 file:ael2_parse line:458 func: main 0 contexts, 0 extensions, 0 priorities
+LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:4 file:pbx_ael.c line:1072 func: check_label Error: file ./extensions.ael, line 13-13: Duplicate label lab1! Previously defined at file ./extensions.ael, line 8.
+LOG: lev:4 file:pbx_ael.c line:1072 func: check_label Error: file ./extensions.ael, line 49-49: Duplicate label ptr1! Previously defined at file ./extensions.ael, line 33.
+LOG: lev:4 file:pbx_ael.c line:3831 func: pbx_load_module Sorry, but 0 syntax errors and 2 semantic errors were detected. It doesn't make sense to compile.
+LOG: lev:4 file:ael2_parse line:479 func: main 0 contexts, 0 extensions, 0 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test14 b/pbx/ael/ael-test/ref.ael-test14
index 842648228..db2444f66 100644
--- a/pbx/ael/ael-test/ref.ael-test14
+++ b/pbx/ael/ael-test/ref.ael-test14
@@ -2,10 +2,10 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c line:3801 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3808 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3811 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:4 file:../pbx/pbx_ael.c line:1045 func: check_continue Error: file ./extensions.ael, line 15-15: 'continue' not in 'for' or 'while' statement!
-LOG: lev:4 file:../pbx/pbx_ael.c line:1026 func: check_break Error: file ./extensions.ael, line 17-17: 'break' not in switch, for, or while statement!
-LOG: lev:4 file:../pbx/pbx_ael.c line:3824 func: pbx_load_module Sorry, but 0 syntax errors and 2 semantic errors were detected. It doesn't make sense to compile.
+LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:4 file:pbx_ael.c line:1044 func: check_continue Error: file ./extensions.ael, line 15-15: 'continue' not in 'for' or 'while' statement!
+LOG: lev:4 file:pbx_ael.c line:1025 func: check_break Error: file ./extensions.ael, line 17-17: 'break' not in switch, for, or while statement!
+LOG: lev:4 file:pbx_ael.c line:3831 func: pbx_load_module Sorry, but 0 syntax errors and 2 semantic errors were detected. It doesn't make sense to compile.
LOG: lev:4 file:ael2_parse line:479 func: main 0 contexts, 0 extensions, 0 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test15 b/pbx/ael/ael-test/ref.ael-test15
index 08244c64c..56ed6781c 100644
--- a/pbx/ael/ael-test/ref.ael-test15
+++ b/pbx/ael/ael-test/ref.ael-test15
@@ -2,12 +2,12 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c line:3797 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3804 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3807 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3810 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
-LOG: lev:3 file:../pbx/pbx_ael.c line:3700 func: ast_compile_ael2 Warning: file ./extensions.ael, line 8-13: Empty Extension!
-LOG: lev:2 file:../pbx/pbx_ael.c line:3812 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3815 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3818 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3821 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:3 file:pbx_ael.c line:3706 func: ast_compile_ael2 Warning: file ./extensions.ael, line 8-13: Empty Extension!
+LOG: lev:2 file:pbx_ael.c line:3823 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3826 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3829 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
LOG: lev:4 file:ael2_parse line:479 func: main 1 contexts, 0 extensions, 0 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test16 b/pbx/ael/ael-test/ref.ael-test16
new file mode 100644
index 000000000..323a726c4
--- /dev/null
+++ b/pbx/ael/ael-test/ref.ael-test16
@@ -0,0 +1,14 @@
+
+(If you find progress and other non-error messages irritating, you can use -q to suppress them)
+
+(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
+LOG: lev:2 file:pbx_ael.c line:3914 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3921 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:3 file:ael.y line:205 func: ael_yyparse ==== File: ./extensions.ael, Line 1, Cols: 19-19: Warning! The empty context real-small will be IGNORED!
+LOG: lev:2 file:pbx_ael.c line:3929 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3932 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:3 file:pbx_ael.c line:3545 func: add_extensions This file is Empty!
+LOG: lev:2 file:pbx_ael.c line:3934 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3937 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3940 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse line:479 func: main 0 contexts, 0 extensions, 0 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test2 b/pbx/ael/ael-test/ref.ael-test2
index fd6c286e9..2d5964563 100644
--- a/pbx/ael/ael-test/ref.ael-test2
+++ b/pbx/ael/ael-test/ref.ael-test2
@@ -2,17 +2,17 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:ael.flex line:422 func: ael_yylex --Read in included file ./apptest.ael2, 3474 chars
-LOG: lev:3 file:ael.y line:512 func: ael_yyparse ==== File: ./apptest.ael2, Line 46, Cols: 8-11: Suggestion: Use the goto statement instead of the Goto() application call in AEL.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 35-35: application call to EndWhile needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 37-37: application call to ExecIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:4 file:../pbx/pbx_ael.c line:1197 func: check_goto Error: file ./apptest.ael2, line 46-46: goto: no context cont could be found that matches the goto target!
-LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 47-47: application call to GotoIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 48-48: application call to GotoIfTime needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 85-85: application call to Random needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 141-141: application call to While needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:4 file:../pbx/pbx_ael.c line:3770 func: pbx_load_module Sorry, but 0 syntax errors and 1 semantic errors were detected. It doesn't make sense to compile.
-LOG: lev:4 file:ael2_parse line:458 func: main 0 contexts, 0 extensions, 0 priorities
+LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./apptest.ael2, 3474 chars
+LOG: lev:3 file:ael.y line:529 func: ael_yyparse ==== File: ./apptest.ael2, Line 46, Cols: 8-11: Suggestion: Use the goto statement instead of the Goto() application call in AEL.
+LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:3 file:pbx_ael.c line:2286 func: check_pval_item Warning: file ./apptest.ael2, line 35-35: application call to EndWhile needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:pbx_ael.c line:2286 func: check_pval_item Warning: file ./apptest.ael2, line 37-37: application call to ExecIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:4 file:pbx_ael.c line:1236 func: check_goto Error: file ./apptest.ael2, line 46-46: goto: no context cont could be found that matches the goto target!
+LOG: lev:3 file:pbx_ael.c line:2286 func: check_pval_item Warning: file ./apptest.ael2, line 47-47: application call to GotoIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:pbx_ael.c line:2286 func: check_pval_item Warning: file ./apptest.ael2, line 48-48: application call to GotoIfTime needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:pbx_ael.c line:2286 func: check_pval_item Warning: file ./apptest.ael2, line 85-85: application call to Random needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:pbx_ael.c line:2286 func: check_pval_item Warning: file ./apptest.ael2, line 141-141: application call to While needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:4 file:pbx_ael.c line:3831 func: pbx_load_module Sorry, but 0 syntax errors and 1 semantic errors were detected. It doesn't make sense to compile.
+LOG: lev:4 file:ael2_parse line:479 func: main 0 contexts, 0 extensions, 0 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test3 b/pbx/ael/ael-test/ref.ael-test3
index ebdacba5c..850a7ab79 100644
--- a/pbx/ael/ael-test/ref.ael-test3
+++ b/pbx/ael/ael-test/ref.ael-test3
@@ -2,17 +2,17 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c line:3797 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3804 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:ael.flex line:431 func: ael_yylex --Read in included file ./include1.ael2, 78 chars
-LOG: lev:2 file:ael.flex line:431 func: ael_yylex --Read in included file ./include2.ael2, 98 chars
-LOG: lev:2 file:ael.flex line:431 func: ael_yylex --Read in included file ./include3.ael2, 57 chars
-LOG: lev:2 file:ael.flex line:431 func: ael_yylex --Read in included file ./include5.ael2, 56 chars
-LOG: lev:2 file:ael.flex line:431 func: ael_yylex --Read in included file ./include4.ael2, 87 chars
-LOG: lev:2 file:ael.flex line:431 func: ael_yylex --Read in included file ./telemarket_torture.ael2, 28036 chars
-LOG: lev:2 file:../pbx/pbx_ael.c line:3807 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3810 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3812 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3815 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3818 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./include1.ael2, 78 chars
+LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./include2.ael2, 98 chars
+LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./include3.ael2, 57 chars
+LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./include5.ael2, 56 chars
+LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./include4.ael2, 87 chars
+LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./telemarket_torture.ael2, 28036 chars
+LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3821 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3823 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3826 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3829 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
LOG: lev:4 file:ael2_parse line:479 func: main 172 contexts, 858 extensions, 2326 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test4 b/pbx/ael/ael-test/ref.ael-test4
index fd6c286e9..2d5964563 100644
--- a/pbx/ael/ael-test/ref.ael-test4
+++ b/pbx/ael/ael-test/ref.ael-test4
@@ -2,17 +2,17 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:ael.flex line:422 func: ael_yylex --Read in included file ./apptest.ael2, 3474 chars
-LOG: lev:3 file:ael.y line:512 func: ael_yyparse ==== File: ./apptest.ael2, Line 46, Cols: 8-11: Suggestion: Use the goto statement instead of the Goto() application call in AEL.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 35-35: application call to EndWhile needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 37-37: application call to ExecIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:4 file:../pbx/pbx_ael.c line:1197 func: check_goto Error: file ./apptest.ael2, line 46-46: goto: no context cont could be found that matches the goto target!
-LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 47-47: application call to GotoIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 48-48: application call to GotoIfTime needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 85-85: application call to Random needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:3 file:../pbx/pbx_ael.c line:2247 func: check_pval_item Warning: file ./apptest.ael2, line 141-141: application call to While needs to be re-written using AEL if, while, goto, etc. keywords instead!
-LOG: lev:4 file:../pbx/pbx_ael.c line:3770 func: pbx_load_module Sorry, but 0 syntax errors and 1 semantic errors were detected. It doesn't make sense to compile.
-LOG: lev:4 file:ael2_parse line:458 func: main 0 contexts, 0 extensions, 0 priorities
+LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:ael.flex line:429 func: ael_yylex --Read in included file ./apptest.ael2, 3474 chars
+LOG: lev:3 file:ael.y line:529 func: ael_yyparse ==== File: ./apptest.ael2, Line 46, Cols: 8-11: Suggestion: Use the goto statement instead of the Goto() application call in AEL.
+LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:3 file:pbx_ael.c line:2286 func: check_pval_item Warning: file ./apptest.ael2, line 35-35: application call to EndWhile needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:pbx_ael.c line:2286 func: check_pval_item Warning: file ./apptest.ael2, line 37-37: application call to ExecIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:4 file:pbx_ael.c line:1236 func: check_goto Error: file ./apptest.ael2, line 46-46: goto: no context cont could be found that matches the goto target!
+LOG: lev:3 file:pbx_ael.c line:2286 func: check_pval_item Warning: file ./apptest.ael2, line 47-47: application call to GotoIf needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:pbx_ael.c line:2286 func: check_pval_item Warning: file ./apptest.ael2, line 48-48: application call to GotoIfTime needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:pbx_ael.c line:2286 func: check_pval_item Warning: file ./apptest.ael2, line 85-85: application call to Random needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:3 file:pbx_ael.c line:2286 func: check_pval_item Warning: file ./apptest.ael2, line 141-141: application call to While needs to be re-written using AEL if, while, goto, etc. keywords instead!
+LOG: lev:4 file:pbx_ael.c line:3831 func: pbx_load_module Sorry, but 0 syntax errors and 1 semantic errors were detected. It doesn't make sense to compile.
+LOG: lev:4 file:ael2_parse line:479 func: main 0 contexts, 0 extensions, 0 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test5 b/pbx/ael/ael-test/ref.ael-test5
index 06bae94fc..2cf53e5c4 100644
--- a/pbx/ael/ael-test/ref.ael-test5
+++ b/pbx/ael/ael-test/ref.ael-test5
@@ -2,11 +2,11 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3760 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3762 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3765 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3768 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse line:458 func: main 38 contexts, 90 extensions, 484 priorities
+LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3821 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3823 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3826 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3829 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse line:479 func: main 38 contexts, 90 extensions, 484 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test6 b/pbx/ael/ael-test/ref.ael-test6
index 998ce3b06..b525d44f5 100644
--- a/pbx/ael/ael-test/ref.ael-test6
+++ b/pbx/ael/ael-test/ref.ael-test6
@@ -2,15 +2,15 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:4 file:ael.flex line:269 func: ael_yylex File=./extensions.ael, line=165, column=49: Mismatched '}' in expression!
-LOG: lev:4 file:ael.y line:735 func: ael_yyerror ==== File: ./extensions.ael, Line 165, Cols: 51-51: Error: syntax error, unexpected '=', expecting ')'
-LOG: lev:4 file:ael.y line:735 func: ael_yyerror ==== File: ./extensions.ael, Line 169, Cols: 24-24: Error: syntax error, unexpected '&'
-LOG: lev:4 file:ael.flex line:269 func: ael_yylex File=./extensions.ael, line=222, column=41: Mismatched '}' in expression!
-LOG: lev:4 file:ael.y line:735 func: ael_yyerror ==== File: ./extensions.ael, Line 222, Cols: 43-43: Error: syntax error, unexpected '=', expecting ')'
-LOG: lev:4 file:ael.y line:735 func: ael_yyerror ==== File: ./extensions.ael, Line 226, Cols: 16-16: Error: syntax error, unexpected '&'
-LOG: lev:4 file:ael.y line:735 func: ael_yyerror ==== File: ./extensions.ael, Line 291, Cols: 21-28: Error: syntax error, unexpected word, expecting '(' or ';' or '=' or ':'
-LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:4 file:../pbx/pbx_ael.c line:3770 func: pbx_load_module Sorry, but 5 syntax errors and 0 semantic errors were detected. It doesn't make sense to compile.
-LOG: lev:4 file:ael2_parse line:458 func: main 0 contexts, 0 extensions, 0 priorities
+LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:4 file:ael.flex line:276 func: ael_yylex File=./extensions.ael, line=165, column=49: Mismatched '}' in expression!
+LOG: lev:4 file:ael.y line:752 func: ael_yyerror ==== File: ./extensions.ael, Line 165, Cols: 51-51: Error: syntax error, unexpected '=', expecting ')'
+LOG: lev:4 file:ael.y line:752 func: ael_yyerror ==== File: ./extensions.ael, Line 169, Cols: 24-24: Error: syntax error, unexpected '&'
+LOG: lev:4 file:ael.flex line:276 func: ael_yylex File=./extensions.ael, line=222, column=41: Mismatched '}' in expression!
+LOG: lev:4 file:ael.y line:752 func: ael_yyerror ==== File: ./extensions.ael, Line 222, Cols: 43-43: Error: syntax error, unexpected '=', expecting ')'
+LOG: lev:4 file:ael.y line:752 func: ael_yyerror ==== File: ./extensions.ael, Line 226, Cols: 16-16: Error: syntax error, unexpected '&'
+LOG: lev:4 file:ael.y line:752 func: ael_yyerror ==== File: ./extensions.ael, Line 291, Cols: 21-28: Error: syntax error, unexpected word, expecting '(' or ';' or '=' or ':'
+LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:4 file:pbx_ael.c line:3831 func: pbx_load_module Sorry, but 5 syntax errors and 0 semantic errors were detected. It doesn't make sense to compile.
+LOG: lev:4 file:ael2_parse line:479 func: main 0 contexts, 0 extensions, 0 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test7 b/pbx/ael/ael-test/ref.ael-test7
index a9a1b77f8..22e966bb3 100644
--- a/pbx/ael/ael-test/ref.ael-test7
+++ b/pbx/ael/ael-test/ref.ael-test7
@@ -2,13 +2,13 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:4 file:../pbx/pbx_ael.c line:2221 func: check_pval_item Error: file ./extensions.ael, line 98-98: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
-LOG: lev:4 file:../pbx/pbx_ael.c line:2221 func: check_pval_item Error: file ./extensions.ael, line 107-107: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
-LOG: lev:4 file:../pbx/pbx_ael.c line:2221 func: check_pval_item Error: file ./extensions.ael, line 284-284: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
-LOG: lev:4 file:../pbx/pbx_ael.c line:2221 func: check_pval_item Error: file ./extensions.ael, line 287-287: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
-LOG: lev:4 file:../pbx/pbx_ael.c line:2202 func: check_pval_item Error: file ./extensions.ael, line 452-452: macro call to non-existent std-exten-ael !
-LOG: lev:4 file:../pbx/pbx_ael.c line:3770 func: pbx_load_module Sorry, but 0 syntax errors and 5 semantic errors were detected. It doesn't make sense to compile.
-LOG: lev:4 file:ael2_parse line:458 func: main 0 contexts, 0 extensions, 0 priorities
+LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:4 file:pbx_ael.c line:2260 func: check_pval_item Error: file ./extensions.ael, line 98-98: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
+LOG: lev:4 file:pbx_ael.c line:2260 func: check_pval_item Error: file ./extensions.ael, line 107-107: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
+LOG: lev:4 file:pbx_ael.c line:2260 func: check_pval_item Error: file ./extensions.ael, line 284-284: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
+LOG: lev:4 file:pbx_ael.c line:2260 func: check_pval_item Error: file ./extensions.ael, line 287-287: The macro call to checkanddial has 5 arguments, but the macro definition has 7 arguments
+LOG: lev:4 file:pbx_ael.c line:2241 func: check_pval_item Error: file ./extensions.ael, line 452-452: macro call to non-existent std-exten-ael !
+LOG: lev:4 file:pbx_ael.c line:3831 func: pbx_load_module Sorry, but 0 syntax errors and 5 semantic errors were detected. It doesn't make sense to compile.
+LOG: lev:4 file:ael2_parse line:479 func: main 0 contexts, 0 extensions, 0 priorities
diff --git a/pbx/ael/ael-test/ref.ael-test8 b/pbx/ael/ael-test/ref.ael-test8
index 8ef0fb562..fc0a237f9 100644
--- a/pbx/ael/ael-test/ref.ael-test8
+++ b/pbx/ael/ael-test/ref.ael-test8
@@ -2,11 +2,11 @@
(If you find progress and other non-error messages irritating, you can use -q to suppress them)
(You can use the -w option to dump extensions.conf format to extensions.conf.aeldump)
-LOG: lev:2 file:../pbx/pbx_ael.c line:3747 func: pbx_load_module Starting AEL load process.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3754 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3757 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3760 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3762 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3765 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
-LOG: lev:2 file:../pbx/pbx_ael.c line:3768 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
-LOG: lev:4 file:ael2_parse line:458 func: main 1 contexts, 5 extensions, 15 priorities
+LOG: lev:2 file:pbx_ael.c line:3803 func: pbx_load_module Starting AEL load process.
+LOG: lev:2 file:pbx_ael.c line:3810 func: pbx_load_module AEL load process: calculated config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3818 func: pbx_load_module AEL load process: parsed config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3821 func: pbx_load_module AEL load process: checked config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3823 func: pbx_load_module AEL load process: compiled config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3826 func: pbx_load_module AEL load process: merged config file name './extensions.ael'.
+LOG: lev:2 file:pbx_ael.c line:3829 func: pbx_load_module AEL load process: verified config file name './extensions.ael'.
+LOG: lev:4 file:ael2_parse line:479 func: main 1 contexts, 5 extensions, 15 priorities
diff --git a/pbx/ael/ael.tab.c b/pbx/ael/ael.tab.c
index 563eb5886..980a2e51a 100644
--- a/pbx/ael/ael.tab.c
+++ b/pbx/ael/ael.tab.c
@@ -617,19 +617,19 @@ static const yytype_int8 yyrhs[] =
static const yytype_uint16 yyrline[] =
{
0, 185, 185, 188, 189, 190, 193, 194, 195, 196,
- 199, 200, 203, 212, 213, 216, 222, 228, 229, 230,
- 233, 233, 240, 241, 242, 243, 246, 247, 248, 251,
- 252, 253, 254, 255, 256, 257, 258, 261, 266, 270,
- 275, 280, 290, 291, 292, 298, 303, 307, 315, 315,
- 319, 322, 325, 336, 337, 344, 345, 349, 355, 356,
- 361, 369, 370, 374, 380, 389, 392, 393, 396, 399,
- 402, 403, 404, 402, 410, 414, 415, 416, 417, 420,
- 420, 453, 454, 455, 456, 460, 463, 464, 467, 468,
- 471, 474, 478, 482, 486, 492, 493, 497, 500, 506,
- 506, 511, 519, 519, 530, 537, 540, 541, 544, 545,
- 548, 551, 552, 555, 559, 563, 569, 570, 573, 574,
- 580, 585, 590, 591, 592, 595, 596, 603, 604, 605,
- 608, 611
+ 199, 200, 203, 218, 219, 222, 228, 234, 235, 236,
+ 239, 239, 246, 247, 248, 249, 252, 253, 254, 257,
+ 258, 259, 260, 261, 262, 263, 264, 267, 272, 276,
+ 281, 286, 296, 297, 298, 304, 309, 313, 321, 321,
+ 325, 328, 331, 342, 343, 350, 351, 355, 361, 362,
+ 367, 375, 376, 380, 386, 395, 398, 399, 402, 405,
+ 408, 409, 410, 408, 416, 420, 421, 422, 423, 426,
+ 426, 459, 460, 461, 462, 466, 469, 470, 473, 474,
+ 477, 480, 484, 488, 492, 498, 499, 503, 506, 512,
+ 512, 517, 525, 525, 536, 543, 546, 547, 550, 551,
+ 554, 557, 558, 561, 565, 569, 575, 576, 579, 580,
+ 586, 591, 596, 597, 598, 601, 602, 609, 610, 611,
+ 614, 617
};
#endif
@@ -2114,25 +2114,31 @@ yyreduce:
case 12:
#line 203 "ael.y"
{
- (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[(1) - (6)]), &(yylsp[(6) - (6)]));
- (yyval.pval)->u1.str = (yyvsp[(3) - (6)].str);
- (yyval.pval)->u2.statements = (yyvsp[(5) - (6)].pval);
- set_dads((yyval.pval),(yyvsp[(5) - (6)].pval));
- (yyval.pval)->u3.abstract = (yyvsp[(1) - (6)].intval); ;}
+ if (!(yyvsp[(5) - (6)].pval)) {
+ ast_log(LOG_WARNING, "==== File: %s, Line %d, Cols: %d-%d: Warning! The empty context %s will be IGNORED!\n",
+ my_file, (yylsp[(4) - (6)]).first_line, (yylsp[(4) - (6)]).first_column, (yylsp[(4) - (6)]).last_column, (yyvsp[(3) - (6)].str) );
+ free((yyvsp[(3) - (6)].str));
+
+ } else {
+ (yyval.pval) = npval2(PV_CONTEXT, &(yylsp[(1) - (6)]), &(yylsp[(6) - (6)]));
+ (yyval.pval)->u1.str = (yyvsp[(3) - (6)].str);
+ (yyval.pval)->u2.statements = (yyvsp[(5) - (6)].pval);
+ set_dads((yyval.pval),(yyvsp[(5) - (6)].pval));
+ (yyval.pval)->u3.abstract = (yyvsp[(1) - (6)].intval);} ;}
break;
case 13:
-#line 212 "ael.y"
+#line 218 "ael.y"
{ (yyval.intval) = 1; ;}
break;
case 14:
-#line 213 "ael.y"
+#line 219 "ael.y"
{ (yyval.intval) = 0; ;}
break;
case 15:
-#line 216 "ael.y"
+#line 222 "ael.y"
{
(yyval.pval) = npval2(PV_MACRO, &(yylsp[(1) - (8)]), &(yylsp[(8) - (8)]));
(yyval.pval)->u1.str = (yyvsp[(2) - (8)].str); (yyval.pval)->u2.arglist = (yyvsp[(4) - (8)].pval); (yyval.pval)->u3.macro_statements = (yyvsp[(7) - (8)].pval);
@@ -2140,7 +2146,7 @@ yyreduce:
break;
case 16:
-#line 222 "ael.y"
+#line 228 "ael.y"
{
(yyval.pval) = npval2(PV_GLOBALS, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
(yyval.pval)->u1.statements = (yyvsp[(3) - (4)].pval);
@@ -2148,27 +2154,27 @@ yyreduce:
break;
case 17:
-#line 228 "ael.y"
+#line 234 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
case 18:
-#line 229 "ael.y"
+#line 235 "ael.y"
{(yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
break;
case 19:
-#line 230 "ael.y"
+#line 236 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
break;
case 20:
-#line 233 "ael.y"
+#line 239 "ael.y"
{ reset_semicount(parseio->scanner); ;}
break;
case 21:
-#line 233 "ael.y"
+#line 239 "ael.y"
{
(yyval.pval) = npval2(PV_VARDEC, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (5)].str);
@@ -2176,89 +2182,89 @@ yyreduce:
break;
case 22:
-#line 240 "ael.y"
+#line 246 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
case 23:
-#line 241 "ael.y"
+#line 247 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
case 24:
-#line 242 "ael.y"
+#line 248 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)]))); ;}
break;
case 25:
-#line 243 "ael.y"
+#line 249 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
break;
case 26:
-#line 246 "ael.y"
+#line 252 "ael.y"
{(yyval.pval)=0;;}
break;
case 27:
-#line 247 "ael.y"
+#line 253 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
break;
case 28:
-#line 248 "ael.y"
+#line 254 "ael.y"
{ (yyval.pval)=(yyvsp[(1) - (2)].pval);;}
break;
case 29:
-#line 251 "ael.y"
+#line 257 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
case 30:
-#line 252 "ael.y"
+#line 258 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
case 31:
-#line 253 "ael.y"
+#line 259 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
case 32:
-#line 254 "ael.y"
+#line 260 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
case 33:
-#line 255 "ael.y"
+#line 261 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
case 34:
-#line 256 "ael.y"
+#line 262 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
case 35:
-#line 257 "ael.y"
+#line 263 "ael.y"
{free((yyvsp[(1) - (2)].str)); (yyval.pval)=0;;}
break;
case 36:
-#line 258 "ael.y"
+#line 264 "ael.y"
{(yyval.pval)=0;/* allow older docs to be read */;}
break;
case 37:
-#line 261 "ael.y"
+#line 267 "ael.y"
{
(yyval.pval) = npval2(PV_IGNOREPAT, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
(yyval.pval)->u1.str = (yyvsp[(3) - (4)].str);;}
break;
case 38:
-#line 266 "ael.y"
+#line 272 "ael.y"
{
(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (3)].str);
@@ -2266,7 +2272,7 @@ yyreduce:
break;
case 39:
-#line 270 "ael.y"
+#line 276 "ael.y"
{
(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
(yyval.pval)->u1.str = (yyvsp[(2) - (4)].str);
@@ -2275,7 +2281,7 @@ yyreduce:
break;
case 40:
-#line 275 "ael.y"
+#line 281 "ael.y"
{
(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (7)]), &(yylsp[(7) - (7)]));
(yyval.pval)->u1.str = (yyvsp[(5) - (7)].str);
@@ -2284,7 +2290,7 @@ yyreduce:
break;
case 41:
-#line 280 "ael.y"
+#line 286 "ael.y"
{
(yyval.pval) = npval2(PV_EXTENSION, &(yylsp[(1) - (8)]), &(yylsp[(8) - (8)]));
(yyval.pval)->u1.str = (yyvsp[(6) - (8)].str);
@@ -2294,22 +2300,22 @@ yyreduce:
break;
case 42:
-#line 290 "ael.y"
+#line 296 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
case 43:
-#line 291 "ael.y"
+#line 297 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
break;
case 44:
-#line 292 "ael.y"
+#line 298 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
break;
case 45:
-#line 298 "ael.y"
+#line 304 "ael.y"
{
asprintf(&(yyval.str), "%s:%s:%s", (yyvsp[(1) - (5)].str), (yyvsp[(3) - (5)].str), (yyvsp[(5) - (5)].str));
free((yyvsp[(1) - (5)].str));
@@ -2318,12 +2324,12 @@ yyreduce:
break;
case 46:
-#line 303 "ael.y"
+#line 309 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); ;}
break;
case 47:
-#line 307 "ael.y"
+#line 313 "ael.y"
{
(yyval.pval) = nword((yyvsp[(1) - (7)].str), &(yylsp[(1) - (7)]));
(yyval.pval)->next = nword((yyvsp[(3) - (7)].str), &(yylsp[(3) - (7)]));
@@ -2332,31 +2338,31 @@ yyreduce:
break;
case 48:
-#line 315 "ael.y"
+#line 321 "ael.y"
{ reset_parencount(parseio->scanner); ;}
break;
case 49:
-#line 315 "ael.y"
+#line 321 "ael.y"
{ (yyval.str) = (yyvsp[(3) - (4)].str); ;}
break;
case 50:
-#line 319 "ael.y"
+#line 325 "ael.y"
{
(yyval.pval)= npval2(PV_IF, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
(yyval.pval)->u1.str = (yyvsp[(2) - (2)].str); ;}
break;
case 51:
-#line 322 "ael.y"
+#line 328 "ael.y"
{
(yyval.pval) = npval2(PV_RANDOM, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
(yyval.pval)->u1.str=(yyvsp[(2) - (2)].str);;}
break;
case 52:
-#line 325 "ael.y"
+#line 331 "ael.y"
{
(yyval.pval) = npval2(PV_IFTIME, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
(yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval);
@@ -2364,12 +2370,12 @@ yyreduce:
break;
case 53:
-#line 336 "ael.y"
+#line 342 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str);;}
break;
case 54:
-#line 337 "ael.y"
+#line 343 "ael.y"
{
asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str));
free((yyvsp[(1) - (2)].str));
@@ -2378,12 +2384,12 @@ yyreduce:
break;
case 55:
-#line 344 "ael.y"
+#line 350 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str); ;}
break;
case 56:
-#line 345 "ael.y"
+#line 351 "ael.y"
{
asprintf(&((yyval.str)), "%s %s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str));
free((yyvsp[(1) - (2)].str));
@@ -2391,7 +2397,7 @@ yyreduce:
break;
case 57:
-#line 349 "ael.y"
+#line 355 "ael.y"
{ /* there are often '&' in hints */
asprintf(&((yyval.str)), "%s&%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str));
free((yyvsp[(1) - (3)].str));
@@ -2399,12 +2405,12 @@ yyreduce:
break;
case 58:
-#line 355 "ael.y"
+#line 361 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str);;}
break;
case 59:
-#line 356 "ael.y"
+#line 362 "ael.y"
{
asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str));
free((yyvsp[(1) - (2)].str));
@@ -2413,7 +2419,7 @@ yyreduce:
break;
case 60:
-#line 361 "ael.y"
+#line 367 "ael.y"
{
asprintf(&((yyval.str)), "%s%s%s", (yyvsp[(1) - (3)].str), (yyvsp[(2) - (3)].str), (yyvsp[(3) - (3)].str));
free((yyvsp[(1) - (3)].str));
@@ -2423,12 +2429,12 @@ yyreduce:
break;
case 61:
-#line 369 "ael.y"
+#line 375 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str);;}
break;
case 62:
-#line 370 "ael.y"
+#line 376 "ael.y"
{
asprintf(&((yyval.str)), "%s%s", (yyvsp[(1) - (2)].str), (yyvsp[(2) - (2)].str));
free((yyvsp[(1) - (2)].str));
@@ -2436,7 +2442,7 @@ yyreduce:
break;
case 63:
-#line 374 "ael.y"
+#line 380 "ael.y"
{
asprintf(&((yyval.str)), "%s:%s", (yyvsp[(1) - (3)].str), (yyvsp[(3) - (3)].str));
free((yyvsp[(1) - (3)].str));
@@ -2444,7 +2450,7 @@ yyreduce:
break;
case 64:
-#line 380 "ael.y"
+#line 386 "ael.y"
{
(yyval.pval) = npval2(PV_SWITCH, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
(yyval.pval)->u1.str = (yyvsp[(2) - (5)].str);
@@ -2452,55 +2458,55 @@ yyreduce:
break;
case 65:
-#line 389 "ael.y"
+#line 395 "ael.y"
{
(yyval.pval) = npval2(PV_STATEMENTBLOCK, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval); set_dads((yyval.pval),(yyvsp[(2) - (3)].pval));;}
break;
case 66:
-#line 392 "ael.y"
+#line 398 "ael.y"
{ (yyval.pval) = (yyvsp[(1) - (1)].pval); ;}
break;
case 67:
-#line 393 "ael.y"
+#line 399 "ael.y"
{
(yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;}
break;
case 68:
-#line 396 "ael.y"
+#line 402 "ael.y"
{
(yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.list = (yyvsp[(2) - (3)].pval);;}
break;
case 69:
-#line 399 "ael.y"
+#line 405 "ael.y"
{
(yyval.pval) = npval2(PV_LABEL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (2)].str); ;}
break;
case 70:
-#line 402 "ael.y"
+#line 408 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
case 71:
-#line 403 "ael.y"
+#line 409 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
case 72:
-#line 404 "ael.y"
+#line 410 "ael.y"
{reset_parencount(parseio->scanner);;}
break;
case 73:
-#line 404 "ael.y"
+#line 410 "ael.y"
{ /* XXX word_list maybe ? */
(yyval.pval) = npval2(PV_FOR, &(yylsp[(1) - (12)]), &(yylsp[(12) - (12)]));
(yyval.pval)->u1.for_init = (yyvsp[(4) - (12)].str);
@@ -2510,7 +2516,7 @@ yyreduce:
break;
case 74:
-#line 410 "ael.y"
+#line 416 "ael.y"
{
(yyval.pval) = npval2(PV_WHILE, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.str = (yyvsp[(2) - (3)].str);
@@ -2518,34 +2524,34 @@ yyreduce:
break;
case 75:
-#line 414 "ael.y"
+#line 420 "ael.y"
{ (yyval.pval) = (yyvsp[(1) - (1)].pval); ;}
break;
case 76:
-#line 415 "ael.y"
+#line 421 "ael.y"
{ (yyval.pval) = update_last((yyvsp[(2) - (3)].pval), &(yylsp[(2) - (3)])); ;}
break;
case 77:
-#line 416 "ael.y"
+#line 422 "ael.y"
{ (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;}
break;
case 78:
-#line 417 "ael.y"
+#line 423 "ael.y"
{
(yyval.pval)= npval2(PV_APPLICATION_CALL, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (2)].str);;}
break;
case 79:
-#line 420 "ael.y"
+#line 426 "ael.y"
{reset_semicount(parseio->scanner);;}
break;
case 80:
-#line 420 "ael.y"
+#line 426 "ael.y"
{
char *bufx;
int tot=0;
@@ -2582,22 +2588,22 @@ yyreduce:
break;
case 81:
-#line 453 "ael.y"
+#line 459 "ael.y"
{ (yyval.pval) = npval2(PV_BREAK, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
break;
case 82:
-#line 454 "ael.y"
+#line 460 "ael.y"
{ (yyval.pval) = npval2(PV_RETURN, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
break;
case 83:
-#line 455 "ael.y"
+#line 461 "ael.y"
{ (yyval.pval) = npval2(PV_CONTINUE, &(yylsp[(1) - (2)]), &(yylsp[(2) - (2)])); ;}
break;
case 84:
-#line 456 "ael.y"
+#line 462 "ael.y"
{
(yyval.pval) = update_last((yyvsp[(1) - (3)].pval), &(yylsp[(2) - (3)]));
(yyval.pval)->u2.statements = (yyvsp[(2) - (3)].pval); set_dads((yyval.pval),(yyvsp[(2) - (3)].pval));
@@ -2605,41 +2611,41 @@ yyreduce:
break;
case 85:
-#line 460 "ael.y"
+#line 466 "ael.y"
{ (yyval.pval)=0; ;}
break;
case 86:
-#line 463 "ael.y"
+#line 469 "ael.y"
{ (yyval.pval) = (yyvsp[(2) - (2)].pval); ;}
break;
case 87:
-#line 464 "ael.y"
+#line 470 "ael.y"
{ (yyval.pval) = NULL ; ;}
break;
case 88:
-#line 467 "ael.y"
+#line 473 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
case 89:
-#line 468 "ael.y"
+#line 474 "ael.y"
{
(yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)]));
(yyval.pval)->next = nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)])); ;}
break;
case 90:
-#line 471 "ael.y"
+#line 477 "ael.y"
{
(yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)]));
(yyval.pval)->next = nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)])); ;}
break;
case 91:
-#line 474 "ael.y"
+#line 480 "ael.y"
{
(yyval.pval) = nword((yyvsp[(1) - (5)].str), &(yylsp[(1) - (5)]));
(yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
@@ -2647,7 +2653,7 @@ yyreduce:
break;
case 92:
-#line 478 "ael.y"
+#line 484 "ael.y"
{
(yyval.pval) = nword((yyvsp[(1) - (5)].str), &(yylsp[(1) - (5)]));
(yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
@@ -2655,7 +2661,7 @@ yyreduce:
break;
case 93:
-#line 482 "ael.y"
+#line 488 "ael.y"
{
(yyval.pval) = nword(strdup("default"), &(yylsp[(1) - (5)]));
(yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
@@ -2663,7 +2669,7 @@ yyreduce:
break;
case 94:
-#line 486 "ael.y"
+#line 492 "ael.y"
{
(yyval.pval) = nword(strdup("default"), &(yylsp[(1) - (5)]));
(yyval.pval)->next = nword((yyvsp[(3) - (5)].str), &(yylsp[(3) - (5)]));
@@ -2671,24 +2677,24 @@ yyreduce:
break;
case 95:
-#line 492 "ael.y"
+#line 498 "ael.y"
{ (yyval.str) = strdup("1"); ;}
break;
case 96:
-#line 493 "ael.y"
+#line 499 "ael.y"
{ (yyval.str) = (yyvsp[(2) - (2)].str); ;}
break;
case 97:
-#line 497 "ael.y"
+#line 503 "ael.y"
{ /* ext[, pri] default 1 */
(yyval.pval) = nword((yyvsp[(1) - (2)].str), &(yylsp[(1) - (2)]));
(yyval.pval)->next = nword((yyvsp[(2) - (2)].str), &(yylsp[(2) - (2)])); ;}
break;
case 98:
-#line 500 "ael.y"
+#line 506 "ael.y"
{ /* context, ext, pri */
(yyval.pval) = nword((yyvsp[(4) - (4)].str), &(yylsp[(4) - (4)]));
(yyval.pval)->next = nword((yyvsp[(1) - (4)].str), &(yylsp[(1) - (4)]));
@@ -2696,12 +2702,12 @@ yyreduce:
break;
case 99:
-#line 506 "ael.y"
+#line 512 "ael.y"
{reset_argcount(parseio->scanner);;}
break;
case 100:
-#line 506 "ael.y"
+#line 512 "ael.y"
{
/* XXX original code had @2 but i think we need @5 */
(yyval.pval) = npval2(PV_MACRO_CALL, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
@@ -2710,19 +2716,19 @@ yyreduce:
break;
case 101:
-#line 511 "ael.y"
+#line 517 "ael.y"
{
(yyval.pval)= npval2(PV_MACRO_CALL, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.str = (yyvsp[(1) - (3)].str); ;}
break;
case 102:
-#line 519 "ael.y"
+#line 525 "ael.y"
{reset_argcount(parseio->scanner);;}
break;
case 103:
-#line 519 "ael.y"
+#line 525 "ael.y"
{
if (strcasecmp((yyvsp[(1) - (3)].str),"goto") == 0) {
(yyval.pval) = npval2(PV_GOTO, &(yylsp[(1) - (3)]), &(yylsp[(2) - (3)]));
@@ -2735,7 +2741,7 @@ yyreduce:
break;
case 104:
-#line 530 "ael.y"
+#line 536 "ael.y"
{
(yyval.pval) = update_last((yyvsp[(1) - (3)].pval), &(yylsp[(3) - (3)]));
if( (yyval.pval)->type == PV_GOTO )
@@ -2746,49 +2752,49 @@ yyreduce:
break;
case 105:
-#line 537 "ael.y"
+#line 543 "ael.y"
{ (yyval.pval) = update_last((yyvsp[(1) - (2)].pval), &(yylsp[(2) - (2)])); ;}
break;
case 106:
-#line 540 "ael.y"
+#line 546 "ael.y"
{ (yyval.str) = (yyvsp[(1) - (1)].str) ;}
break;
case 107:
-#line 541 "ael.y"
+#line 547 "ael.y"
{ (yyval.str) = strdup(""); ;}
break;
case 108:
-#line 544 "ael.y"
+#line 550 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
case 109:
-#line 545 "ael.y"
+#line 551 "ael.y"
{
(yyval.pval)= npval(PV_WORD,0/*@1.first_line*/,0/*@1.last_line*/,0/* @1.first_column*/, 0/*@1.last_column*/);
(yyval.pval)->u1.str = strdup(""); ;}
break;
case 110:
-#line 548 "ael.y"
+#line 554 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), nword((yyvsp[(3) - (3)].str), &(yylsp[(3) - (3)]))); ;}
break;
case 111:
-#line 551 "ael.y"
+#line 557 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
case 112:
-#line 552 "ael.y"
+#line 558 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
break;
case 113:
-#line 555 "ael.y"
+#line 561 "ael.y"
{
(yyval.pval) = npval2(PV_CASE, &(yylsp[(1) - (4)]), &(yylsp[(3) - (4)])); /* XXX 3 or 4 ? */
(yyval.pval)->u1.str = (yyvsp[(2) - (4)].str);
@@ -2796,7 +2802,7 @@ yyreduce:
break;
case 114:
-#line 559 "ael.y"
+#line 565 "ael.y"
{
(yyval.pval) = npval2(PV_DEFAULT, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));
(yyval.pval)->u1.str = NULL;
@@ -2804,7 +2810,7 @@ yyreduce:
break;
case 115:
-#line 563 "ael.y"
+#line 569 "ael.y"
{
(yyval.pval) = npval2(PV_PATTERN, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)])); /* XXX@3 or @4 ? */
(yyval.pval)->u1.str = (yyvsp[(2) - (4)].str);
@@ -2812,22 +2818,22 @@ yyreduce:
break;
case 116:
-#line 569 "ael.y"
+#line 575 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
case 117:
-#line 570 "ael.y"
+#line 576 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (2)].pval), (yyvsp[(2) - (2)].pval)); ;}
break;
case 118:
-#line 573 "ael.y"
+#line 579 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (1)].pval);;}
break;
case 119:
-#line 574 "ael.y"
+#line 580 "ael.y"
{
(yyval.pval) = npval2(PV_CATCH, &(yylsp[(1) - (5)]), &(yylsp[(5) - (5)]));
(yyval.pval)->u1.str = (yyvsp[(2) - (5)].str);
@@ -2835,41 +2841,41 @@ yyreduce:
break;
case 120:
-#line 580 "ael.y"
+#line 586 "ael.y"
{
(yyval.pval) = npval2(PV_SWITCHES, &(yylsp[(1) - (4)]), &(yylsp[(2) - (4)]));
(yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval); set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;}
break;
case 121:
-#line 585 "ael.y"
+#line 591 "ael.y"
{
(yyval.pval) = npval2(PV_ESWITCHES, &(yylsp[(1) - (4)]), &(yylsp[(2) - (4)]));
(yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval); set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;}
break;
case 122:
-#line 590 "ael.y"
+#line 596 "ael.y"
{ (yyval.pval) = NULL; ;}
break;
case 123:
-#line 591 "ael.y"
+#line 597 "ael.y"
{ (yyval.pval) = linku1(nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)])), (yyvsp[(3) - (3)].pval)); ;}
break;
case 124:
-#line 592 "ael.y"
+#line 598 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
break;
case 125:
-#line 595 "ael.y"
+#line 601 "ael.y"
{ (yyval.pval) = nword((yyvsp[(1) - (1)].str), &(yylsp[(1) - (1)])); ;}
break;
case 126:
-#line 596 "ael.y"
+#line 602 "ael.y"
{
(yyval.pval) = nword((yyvsp[(1) - (3)].str), &(yylsp[(1) - (3)]));
(yyval.pval)->u2.arglist = (yyvsp[(3) - (3)].pval);
@@ -2877,36 +2883,36 @@ yyreduce:
break;
case 127:
-#line 603 "ael.y"
+#line 609 "ael.y"
{ (yyval.pval) = (yyvsp[(1) - (2)].pval); ;}
break;
case 128:
-#line 604 "ael.y"
+#line 610 "ael.y"
{ (yyval.pval) = linku1((yyvsp[(1) - (3)].pval), (yyvsp[(2) - (3)].pval)); ;}
break;
case 129:
-#line 605 "ael.y"
+#line 611 "ael.y"
{(yyval.pval)=(yyvsp[(1) - (2)].pval);;}
break;
case 130:
-#line 608 "ael.y"
+#line 614 "ael.y"
{
(yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (4)]), &(yylsp[(4) - (4)]));
(yyval.pval)->u1.list = (yyvsp[(3) - (4)].pval);set_dads((yyval.pval),(yyvsp[(3) - (4)].pval));;}
break;
case 131:
-#line 611 "ael.y"
+#line 617 "ael.y"
{
(yyval.pval) = npval2(PV_INCLUDES, &(yylsp[(1) - (3)]), &(yylsp[(3) - (3)]));;}
break;
/* Line 1270 of yacc.c. */
-#line 2910 "ael.tab.c"
+#line 2916 "ael.tab.c"
default: break;
}
YY_SYMBOL_PRINT ("-> $$ =", yyr1[yyn], &yyval, &yyloc);
@@ -3125,7 +3131,7 @@ yyreturn:
}
-#line 616 "ael.y"
+#line 622 "ael.y"
static char *token_equivs1[] =
diff --git a/pbx/ael/ael.y b/pbx/ael/ael.y
index 81a76fd33..d32ded0a6 100644
--- a/pbx/ael/ael.y
+++ b/pbx/ael/ael.y
@@ -201,11 +201,17 @@ context_name : word { $$ = $1; }
;
context : opt_abstract KW_CONTEXT context_name LC elements RC {
- $$ = npval2(PV_CONTEXT, &@1, &@6);
- $$->u1.str = $3;
- $$->u2.statements = $5;
- set_dads($$,$5);
- $$->u3.abstract = $1; }
+ if (!$5) {
+ ast_log(LOG_WARNING, "==== File: %s, Line %d, Cols: %d-%d: Warning! The empty context %s will be IGNORED!\n",
+ my_file, @4.first_line, @4.first_column, @4.last_column, $3 );
+ free($3);
+
+ } else {
+ $$ = npval2(PV_CONTEXT, &@1, &@6);
+ $$->u1.str = $3;
+ $$->u2.statements = $5;
+ set_dads($$,$5);
+ $$->u3.abstract = $1;} }
;
/* optional "abstract" keyword XXX there is no regression test for this */
diff --git a/pbx/pbx_ael.c b/pbx/pbx_ael.c
index 1594c82b3..dff3023ea 100644
--- a/pbx/pbx_ael.c
+++ b/pbx/pbx_ael.c
@@ -3429,6 +3429,10 @@ void add_extensions(struct ael_extension *exten)
{
struct ael_priority *pr;
char *label=0;
+ if (!exten) {
+ ast_log(LOG_WARNING, "This file is Empty!\n" );
+ return;
+ }
do {
struct ael_priority *last = 0;