{
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");
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) {
for (i=3;i<argc;i++) {
if (! ast_strcasestr(a->description, argv[i])) {
printapp = 0;
+ } else {
+ total_match++;
}
}
}
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);