aboutsummaryrefslogtreecommitdiffstats
path: root/pbx.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-09-14 17:19:55 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2005-09-14 17:19:55 +0000
commit48f8b7d7ca1342bbf83e058d27a1ad6157c60802 (patch)
tree2fdd2a185fef21eefebc458e4ec81d0cacadb8a4 /pbx.c
parentefff178d9e50e8a269d44d0b597385a6dfb82eba (diff)
slightly clear argument processing
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6592 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx.c')
-rwxr-xr-xpbx.c27
1 files changed, 15 insertions, 12 deletions
diff --git a/pbx.c b/pbx.c
index 6bae090ac..d6d1c47e1 100755
--- a/pbx.c
+++ b/pbx.c
@@ -5574,7 +5574,7 @@ static int pbx_builtin_background(struct ast_channel *chan, void *data)
{
int res = 0;
int argc;
- char *args;
+ char *parse;
char *argv[4];
char *options = NULL;
char *filename = NULL;
@@ -5583,19 +5583,22 @@ static int pbx_builtin_background(struct ast_channel *chan, void *data)
char *context = NULL;
struct ast_flags flags = {0};
- args = ast_strdupa(data);
-
- if ((argc = ast_separate_app_args(args, '|', argv, sizeof(argv) / sizeof(argv[0])))) {
- if (argc > 0) {
+ parse = ast_strdupa(data);
+
+ if ((argc = ast_separate_app_args(parse, '|', argv, sizeof(argv) / sizeof(argv[0])))) {
+ switch (argc) {
+ case 4:
+ context = argv[3];
+ case 3:
+ lang = argv[2];
+ case 2:
+ options = argv[1];
+ case 1:
filename = argv[0];
- if (argc > 1)
- options = argv[1];
- if (argc > 2)
- lang = argv[2];
- if (argc > 3)
- context = argv[3];
- } else {
+ break;
+ default:
ast_log(LOG_WARNING, "Background requires an argument (filename)\n");
+ break;
}
}