aboutsummaryrefslogtreecommitdiffstats
path: root/asterisk.c
diff options
context:
space:
mode:
Diffstat (limited to 'asterisk.c')
-rwxr-xr-xasterisk.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/asterisk.c b/asterisk.c
index 19534eaed..52992fc7c 100755
--- a/asterisk.c
+++ b/asterisk.c
@@ -210,6 +210,7 @@ static int handle_show_version_files(int fd, int argc, char *argv[])
struct file_version *iterator;
regex_t regexbuf;
int havepattern = 0;
+ int havename = 0;
switch (argc) {
case 5:
@@ -220,6 +221,9 @@ static int handle_show_version_files(int fd, int argc, char *argv[])
} else
return RESULT_SHOWUSAGE;
break;
+ case 4:
+ havename = 1;
+ break;
case 3:
break;
default:
@@ -230,10 +234,16 @@ static int handle_show_version_files(int fd, int argc, char *argv[])
ast_cli(fd, FORMAT, "----", "--------");
AST_LIST_LOCK(&file_versions);
AST_LIST_TRAVERSE(&file_versions, iterator, list) {
+ if (havename && strcasecmp(iterator->file, argv[3]))
+ continue;
+
if (havepattern && regexec(&regexbuf, iterator->file, 0, NULL, 0))
continue;
ast_cli(fd, FORMAT, iterator->file, iterator->version);
+
+ if (havename)
+ break;
}
AST_LIST_UNLOCK(&file_versions);