Make 'else' argument to ExecIf optional. Clean up the description and usage text...
authorJason Parker <jparker@digium.com>
Wed, 26 Dec 2007 22:14:21 +0000 (22:14 +0000)
committerJason Parker <jparker@digium.com>
Wed, 26 Dec 2007 22:14:21 +0000 (22:14 +0000)
Closes issue #11564, patch by pnlarsson (with some extra cleanup by me).

git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@94814 65c4cc65-6c06-0410-ace0-fbb531ad65f3

apps/app_exec.c

index 83755a8..441e814 100644 (file)
@@ -77,9 +77,9 @@ static char *tryexec_descrip =
 static char *app_execif = "ExecIf";
 static char *execif_synopsis = "Executes dialplan application, conditionally";
 static char *execif_descrip = 
-"  ExecIF (<expr>?<app>(<data>):<app2>(<data2>))\n"
-"If <expr> is true, execute and return the result of <app>(<data>).\n"
-"If <expr> is true, but <app> is not found, then the application\n"
+"  ExecIF (<expr>?<appiftrue>(<args>)[:<appiffalse>(<args>)])\n"
+"If <expr> is true, execute and return the result of <appiftrue>(<args>).\n"
+"If <expr> is true, but <appiftrue> is not found, then the application\n"
 "will return a non-zero value.\n";
 
 static int exec_exec(struct ast_channel *chan, void *data)
@@ -162,7 +162,7 @@ static int execif_exec(struct ast_channel *chan, void *data)
 
        AST_NONSTANDARD_APP_ARGS(expr, parse, '?');
        if (ast_strlen_zero(expr.remainder)) {
-               ast_log(LOG_ERROR, "Usage: ExecIf(<cond>?<appiftrue>(<args>):<appiffalse>(<args))\n");
+               ast_log(LOG_ERROR, "Usage: ExecIf(<expr>?<appiftrue>(<args>)[:<appiffalse>(<args)])\n");
                return -1;
        }
 
@@ -187,8 +187,8 @@ static int execif_exec(struct ast_channel *chan, void *data)
                        ast_log(LOG_WARNING, "Could not find application! (%s)\n", apps.t);
                        res = -1;
                }
-       } else {
-               if (!ast_strlen_zero(apps.f) && (app = pbx_findapp(apps.f))) {
+       } else if (!ast_strlen_zero(apps.f)) {
+               if ((app = pbx_findapp(apps.f))) {
                        res = pbx_exec(chan, app, S_OR(falsedata, ""));
                } else {
                        ast_log(LOG_WARNING, "Could not find application! (%s)\n", apps.f);