From aaf61b07bcba2d54e373dc483359f9d9605102ac Mon Sep 17 00:00:00 2001 From: murf Date: Tue, 29 Aug 2006 12:24:01 +0000 Subject: Bugfix for 7813 applied to trunk as per patch supplied by stevens git-svn-id: http://svn.digium.com/svn/asterisk/trunk@41267 f38db490-d61c-443f-a65b-d21fe96a405b --- pbx/pbx_config.c | 20 ++++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) (limited to 'pbx') diff --git a/pbx/pbx_config.c b/pbx/pbx_config.c index 6d612eff9..9916d4a30 100644 --- a/pbx/pbx_config.c +++ b/pbx/pbx_config.c @@ -782,9 +782,12 @@ static int handle_save_dialplan(int fd, int argc, char *argv[]) } /* fireout general info */ - fprintf(output, "[general]\nstatic=%s\nwriteprotect=%s\n\n", + fprintf(output, "[general]\nstatic=%s\nwriteprotect=%s\nautofallthrough=%s\nclearglobalvars=%s\npriorityjumping=%s\n\n", static_config ? "yes" : "no", - write_protect_config ? "yes" : "no"); + write_protect_config ? "yes" : "no", + autofallthrough_config ? "yes" : "no", + clearglobalvars_config ? "yes" : "no", + ast_true(ast_variable_retrieve(cfg, "general", "priorityjumping")) ? "yes" : "no"); if ((v = ast_variable_browse(cfg, "globals"))) { fprintf(output, "[globals]\n"); @@ -850,6 +853,8 @@ static int handle_save_dialplan(int fd, int argc, char *argv[]) const char *sep, *cid; char *tempdata = strdup(ast_get_extension_app_data(p)); char *s; + const char *el = ast_get_extension_label(p); + char *label = calloc(1, 128); if (!tempdata) { /* XXX error duplicating string ? */ incomplete = 1; @@ -864,11 +869,18 @@ static int handle_save_dialplan(int fd, int argc, char *argv[]) } else { sep = cid = ""; } - fprintf(output, "exten => %s%s%s,%d,%s(%s)\n", + if (el) { + if (snprintf(label, 127, "(%s)", el) != (strlen(el)+2)) { + incomplete = 1; /* error encountered or label > 125 chars */ + label = NULL; + }; + }; + fprintf(output, "exten => %s%s%s,%d%s,%s(%s)\n", ast_get_extension_name(p), sep, cid, - ast_get_extension_priority(p), + ast_get_extension_priority(p), (label)?label:"", ast_get_extension_app(p), tempdata); free(tempdata); + if (label) free(label); } } } -- cgit v1.2.3