From 49ade5ed71ab26193b9d0fd56abb7f1c34d66ada Mon Sep 17 00:00:00 2001 From: "Kevin P. Fleming" Date: Wed, 14 Sep 2005 17:19:55 +0000 Subject: [PATCH] slightly clear argument processing git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6592 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- pbx.c | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/pbx.c b/pbx.c index 6bae090ac8..d6d1c47e16 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); + parse = ast_strdupa(data); - if ((argc = ast_separate_app_args(args, '|', argv, sizeof(argv) / sizeof(argv[0])))) { - if (argc > 0) { + 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; } }