diff options
author | Kevin P. Fleming <kpfleming@digium.com> | 2005-09-14 17:19:55 +0000 |
---|---|---|
committer | Kevin P. Fleming <kpfleming@digium.com> | 2005-09-14 17:19:55 +0000 |
commit | 49ade5ed71ab26193b9d0fd56abb7f1c34d66ada (patch) | |
tree | 2fdd2a185fef21eefebc458e4ec81d0cacadb8a4 /pbx.c | |
parent | b42abc9ce057c889b186bc2f023701bfd22f0cfc (diff) |
slightly clear argument processing
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6592 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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; } } |