aboutsummaryrefslogtreecommitdiffstats
path: root/pbx/pbx_spool.c
diff options
context:
space:
mode:
authorrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2005-10-11 20:52:37 +0000
committerrussell <russell@f38db490-d61c-443f-a65b-d21fe96a405b>2005-10-11 20:52:37 +0000
commit31fbdff1d7b5ada9720a7aa7bac808799532ede6 (patch)
treec2aca58de7275156e079c82309c246d3c13b1dc7 /pbx/pbx_spool.c
parent5903062f30939ac70a6e4bcab811614d95d74e21 (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/pbx_spool.c')
-rwxr-xr-xpbx/pbx_spool.c14
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)