From 6d16c8915eae96b554d5c8e9432683b894479564 Mon Sep 17 00:00:00 2001 From: Steve Murphy Date: Wed, 21 May 2008 01:00:28 +0000 Subject: These changes were made via the comments atis_work made at 4:30am (Mountain Time zone- US) in #asterisk-dev on 20 May 2008. He noted that a backslash was being inserted before commas in app call arguments in the extensions.conf.aeldump file that you get from aelparse with the -w arg. This was being generated from code left over from 1.4, where commas were substituted with '|', and any remaining commas needed to be escaped. Many thanks to atis for his comment; please let us know if these changes break anything! git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@117335 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- utils/ael_main.c | 38 ++++---------------------------------- 1 file changed, 4 insertions(+), 34 deletions(-) (limited to 'utils/ael_main.c') diff --git a/utils/ael_main.c b/utils/ael_main.c index 71cfce324..1fc955ab9 100644 --- a/utils/ael_main.c +++ b/utils/ael_main.c @@ -249,8 +249,6 @@ int ast_add_extension2(struct ast_context *con, if( dump_extensions && dumpfile ) { struct namelist *n; - char *data2,*data3=0; - int commacount = 0; if( FIRST_TIME ) { FIRST_TIME = 0; @@ -284,44 +282,16 @@ int ast_add_extension2(struct ast_context *con, if( data ) { filter_newlines((char*)data); filter_leading_space_from_exprs((char*)data); + /* in previous versions, commas were converted to '|' to separate + args in app calls, but now, commas are used. There used to be + code here to insert backslashes (escapes) before any commas + that may have been embedded in the app args. This code is no more. */ - /* compiling turns commas into vertical bars in the app data, and also removes the backslash from before escaped commas; - we have to restore the escaping backslash in front of any commas; the vertical bars are OK to leave as-is */ - for (data2 = data; *data2; data2++) { - if (*data2 == ',') - commacount++; /* we need to know how much bigger the string will grow-- one backslash for each comma */ - } - if (commacount) - { - char *d3,*d4; - - data2 = (char*)malloc(strlen(data)+commacount+1); - data3 = data; - d3 = data; - d4 = data2; - while (*d3) { - if (*d3 == ',') { - *d4++ = '\\'; /* put a backslash in front of each comma */ - *d4++ = *d3++; - } else - *d4++ = *d3++; /* or just copy the char */ - } - *d4++ = 0; /* cap off the new string */ - data = data2; - } else - data2 = 0; - if( strcmp(label,"(null)") != 0 ) fprintf(dumpfile,"exten => %s,%d(%s),%s(%s)\n", extension, priority, label, application, (char*)data); else fprintf(dumpfile,"exten => %s,%d,%s(%s)\n", extension, priority, application, (char*)data); - if (data2) { - free(data2); - data2 = 0; - data = data3; /* restore data to pre-messedup state */ - } - } else { if( strcmp(label,"(null)") != 0 ) -- cgit v1.2.3