diff options
author | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-09-14 17:19:55 +0000 |
---|---|---|
committer | kpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-09-14 17:19:55 +0000 |
commit | 48f8b7d7ca1342bbf83e058d27a1ad6157c60802 (patch) | |
tree | 2fdd2a185fef21eefebc458e4ec81d0cacadb8a4 /pbx.c | |
parent | efff178d9e50e8a269d44d0b597385a6dfb82eba (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-x | pbx.c | 27 |
1 files changed, 15 insertions, 12 deletions
@@ -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; } } |