[Asterisk-cvs] asterisk cli.c,1.68,1.69
markster at lists.digium.com
markster at lists.digium.com
Thu Jan 6 02:06:48 CST 2005
Update of /usr/cvsroot/asterisk
In directory mongoose.digium.com:/tmp/cvs-serv23491
Modified Files:
cli.c
Log Message:
Fix command completion issue (bug #3257)
Index: cli.c
===================================================================
RCS file: /usr/cvsroot/asterisk/cli.c,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -d -r1.68 -r1.69
--- cli.c 29 Dec 2004 07:46:10 -0000 1.68
+++ cli.c 6 Jan 2005 08:11:43 -0000 1.69
@@ -776,8 +776,8 @@
{ { "reload", NULL }, handle_reload, "Reload configuration", reload_help, complete_mod_2 },
{ { "set", "debug", NULL }, handle_set_debug, "Set level of debug chattiness", set_debug_help },
{ { "set", "verbose", NULL }, handle_set_verbose, "Set level of verboseness", set_verbose_help },
- { { "show", "channels", NULL }, handle_chanlist, "Display information on channels", chanlist_help },
{ { "show", "channel", NULL }, handle_showchan, "Display information on a specific channel", showchan_help, complete_ch_3 },
+ { { "show", "channels", NULL }, handle_chanlist, "Display information on channels", chanlist_help },
{ { "show", "modules", NULL }, handle_modlist, "List modules and info", modlist_help },
{ { "show", "modules", "like", NULL }, handle_modlist, "List modules and info", modlist_help, complete_mod_4 },
{ { "show", "uptime", NULL }, handle_showuptime, "Show uptime information", modlist_help },
@@ -1171,19 +1171,19 @@
}
if ((fullcmd[0] != '_') && !strncasecmp(matchstr, fullcmd, strlen(matchstr))) {
/* We contain the first part of one or more commands */
- matchnum++;
- if (matchnum > state) {
- /* Now, what we're supposed to return is the next word... */
- if (!ast_strlen_zero(word) && x>0) {
- res = e->cmda[x-1];
- } else {
- res = e->cmda[x];
- }
- if (res) {
+ /* Now, what we're supposed to return is the next word... */
+ if (!ast_strlen_zero(word) && x>0) {
+ res = e->cmda[x-1];
+ } else {
+ res = e->cmda[x];
+ }
+ if (res) {
+ matchnum++;
+ if (matchnum > state) {
if (lock)
ast_mutex_unlock(&clilock);
free(dup);
- return res ? strdup(res) : NULL;
+ return strdup(res);
}
}
}
@@ -1191,10 +1191,12 @@
/* We have a command in its entirity within us -- theoretically only one
command can have this occur */
fullcmd = e->generator(matchstr, word, (!ast_strlen_zero(word) ? (x - 1) : (x)), state);
- if (lock)
- ast_mutex_unlock(&clilock);
- free(dup);
- return fullcmd;
+ if (fullcmd) {
+ if (lock)
+ ast_mutex_unlock(&clilock);
+ free(dup);
+ return fullcmd;
+ }
}
}
More information about the svn-commits
mailing list