mirror of
https://github.com/asterisk/asterisk.git
synced 2025-11-20 08:40:16 +00:00
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:
25
pbx.c
25
pbx.c
@@ -5574,7 +5574,7 @@ static int pbx_builtin_background(struct ast_channel *chan, void *data)
|
|||||||
{
|
{
|
||||||
int res = 0;
|
int res = 0;
|
||||||
int argc;
|
int argc;
|
||||||
char *args;
|
char *parse;
|
||||||
char *argv[4];
|
char *argv[4];
|
||||||
char *options = NULL;
|
char *options = NULL;
|
||||||
char *filename = NULL;
|
char *filename = NULL;
|
||||||
@@ -5583,19 +5583,22 @@ static int pbx_builtin_background(struct ast_channel *chan, void *data)
|
|||||||
char *context = NULL;
|
char *context = NULL;
|
||||||
struct ast_flags flags = {0};
|
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 = ast_separate_app_args(parse, '|', argv, sizeof(argv) / sizeof(argv[0])))) {
|
||||||
if (argc > 0) {
|
switch (argc) {
|
||||||
|
case 4:
|
||||||
|
context = argv[3];
|
||||||
|
case 3:
|
||||||
|
lang = argv[2];
|
||||||
|
case 2:
|
||||||
|
options = argv[1];
|
||||||
|
case 1:
|
||||||
filename = argv[0];
|
filename = argv[0];
|
||||||
if (argc > 1)
|
break;
|
||||||
options = argv[1];
|
default:
|
||||||
if (argc > 2)
|
|
||||||
lang = argv[2];
|
|
||||||
if (argc > 3)
|
|
||||||
context = argv[3];
|
|
||||||
} else {
|
|
||||||
ast_log(LOG_WARNING, "Background requires an argument (filename)\n");
|
ast_log(LOG_WARNING, "Background requires an argument (filename)\n");
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user