diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-10-11 20:52:37 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-10-11 20:52:37 +0000 |
commit | 31fbdff1d7b5ada9720a7aa7bac808799532ede6 (patch) | |
tree | c2aca58de7275156e079c82309c246d3c13b1dc7 /pbx | |
parent | 5903062f30939ac70a6e4bcab811614d95d74e21 (diff) |
allow semicolons to be escaped in call files (issue #5407)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6742 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx')
-rwxr-xr-x | pbx/pbx_spool.c | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/pbx/pbx_spool.c b/pbx/pbx_spool.c index a3c8cdac6..bcb780deb 100755 --- a/pbx/pbx_spool.c +++ b/pbx/pbx_spool.c @@ -129,9 +129,17 @@ static int apply_outgoing(struct outgoing *o, char *fn, FILE *f) else c++; } - c = strchr(buf, ';'); - if (c) - *c = '\0'; + + c = buf; + while ((c = strchr(c, ';'))) { + if ((c > buf) && (c[-1] == '\\')) { + memmove(c - 1, c, strlen(c) + 1); + c++; + } else { + *c = '\0'; + break; + } + } /* Trim trailing white space */ while(!ast_strlen_zero(buf) && buf[strlen(buf) - 1] < 33) |