]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
Print number of applications (bug #2961)
authorMark Spencer <markster@digium.com>
Wed, 1 Dec 2004 01:28:07 +0000 (01:28 +0000)
committerMark Spencer <markster@digium.com>
Wed, 1 Dec 2004 01:28:07 +0000 (01:28 +0000)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4361 65c4cc65-6c06-0410-ace0-fbb531ad65f3

pbx.c

diff --git a/pbx.c b/pbx.c
index 5b4fa6560564a1dcfaab78a36b9805dd3a8d6ffa..87f0a0db07141a4e1594f98d57647d2afea81c6d 100755 (executable)
--- a/pbx.c
+++ b/pbx.c
@@ -2679,7 +2679,9 @@ static int handle_show_applications(int fd, int argc, char *argv[])
 {
        struct ast_app *a;
        int like=0, describing=0;
-
+       int total_match = 0;    /* Number of matches in like clause */
+       int total_apps = 0;     /* Number of apps registered */
+       
        /* try to lock applications list ... */
        if (ast_mutex_lock(&applock)) {
                ast_log(LOG_ERROR, "Unable to lock application list\n");
@@ -2711,10 +2713,11 @@ static int handle_show_applications(int fd, int argc, char *argv[])
        for (a = apps; a; a = a->next) {
                /* ... show informations about applications ... */
                int printapp=0;
-
+               total_apps++;
                if (like) {
                        if (ast_strcasestr(a->name, argv[3])) {
                                printapp = 1;
+                               total_match++;
                        }
                } else if (describing) {
                        if (a->description) {
@@ -2724,6 +2727,8 @@ static int handle_show_applications(int fd, int argc, char *argv[])
                                for (i=3;i<argc;i++) {
                                        if (! ast_strcasestr(a->description, argv[i])) {
                                                printapp = 0;
+                                       } else {
+                                               total_match++;
                                        }
                                }
                        }
@@ -2735,7 +2740,12 @@ static int handle_show_applications(int fd, int argc, char *argv[])
                        ast_cli(fd,"  %20s: %s\n", a->name, a->synopsis ? a->synopsis : "<Synopsis not available>");
                }
        }
-
+        if ((!like) && (!describing)) {
+               ast_cli(fd, "    -= %d Applications Registered =-\n",total_apps);
+       } else {
+               ast_cli(fd, "    -= %d Applications Matching =-\n",total_match);
+       }
+       
        /* ... unlock and return */
        ast_mutex_unlock(&applock);