Merged revisions 67526 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.4

........
r67526 | murf | 2007-06-05 15:30:18 -0600 (Tue, 05 Jun 2007) | 1 line

this fixes bug 9883, wherein macros were not allowing the includes construct. fixed and tested, looks OK. Now includes can serve as an adjunct to catch.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@67529 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Steve Murphy
2007-06-05 22:04:22 +00:00
parent 7903eac38f
commit 52efde5c65
5 changed files with 274 additions and 235 deletions

View File

@@ -3891,7 +3891,29 @@ void ast_compile_ael2(struct ast_context **local_contexts, struct pval *root)
np2->appargs = strdup(buf);
linkprio(exten, np2);
}
/* add any includes */
for (p2=p->u3.macro_statements; p2; p2=p2->next) {
pval *p3;
switch (p2->type) {
case PV_INCLUDES:
for (p3 = p2->u1.list; p3 ;p3=p3->next) {
if ( p3->u2.arglist ) {
snprintf(buf,sizeof(buf), "%s|%s|%s|%s|%s",
p3->u1.str,
p3->u2.arglist->u1.str,
p3->u2.arglist->next->u1.str,
p3->u2.arglist->next->next->u1.str,
p3->u2.arglist->next->next->next->u1.str);
ast_context_add_include2(context, buf, registrar);
} else
ast_context_add_include2(context, p3->u1.str, registrar);
}
break;
default:
break;
}
}
/* CONTAINS APPCALLS, CATCH, just like extensions... */
gen_prios(exten, p->u1.str, p->u3.macro_statements, 0, context );
if (exten->return_needed) { /* most likely, this will go away */