slightly clear argument processing

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6592 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Kevin P. Fleming
2005-09-14 17:19:55 +00:00
parent b42abc9ce0
commit 49ade5ed71

25
pbx.c
View File

@@ -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);
parse = ast_strdupa(data);
if ((argc = ast_separate_app_args(args, '|', argv, sizeof(argv) / sizeof(argv[0])))) {
if (argc > 0) {
filename = argv[0];
if (argc > 1)
options = argv[1];
if (argc > 2)
lang = argv[2];
if (argc > 3)
if ((argc = ast_separate_app_args(parse, '|', argv, sizeof(argv) / sizeof(argv[0])))) {
switch (argc) {
case 4:
context = argv[3];
} else {
case 3:
lang = argv[2];
case 2:
options = argv[1];
case 1:
filename = argv[0];
break;
default:
ast_log(LOG_WARNING, "Background requires an argument (filename)\n");
break;
}
}