[asterisk-commits] qwell: branch 1.4 r51245 -
/branches/1.4/main/cli.c
asterisk-commits at lists.digium.com
asterisk-commits at lists.digium.com
Thu Jan 18 11:42:01 MST 2007
Author: qwell
Date: Thu Jan 18 12:42:00 2007
New Revision: 51245
URL: http://svn.digium.com/view/asterisk?view=rev&rev=51245
Log:
Fix an issue with file name completion in "module load" and "load".
Issue 8846
Modified:
branches/1.4/main/cli.c
Modified: branches/1.4/main/cli.c
URL: http://svn.digium.com/view/asterisk/branches/1.4/main/cli.c?view=diff&rev=51245&r1=51244&r2=51245
==============================================================================
--- branches/1.4/main/cli.c (original)
+++ branches/1.4/main/cli.c Thu Jan 18 12:42:00 2007
@@ -1243,12 +1243,33 @@
return ast_module_helper(line, word, pos, state, 3, 0);
}
-static char *complete_fn(const char *line, const char *word, int pos, int state)
+static char *complete_fn_2(const char *line, const char *word, int pos, int state)
{
char *c;
char filename[256];
if (pos != 1)
+ return NULL;
+
+ if (word[0] == '/')
+ ast_copy_string(filename, word, sizeof(filename));
+ else
+ snprintf(filename, sizeof(filename), "%s/%s", ast_config_AST_MODULE_DIR, word);
+
+ c = filename_completion_function(filename, state);
+
+ if (c && word[0] != '/')
+ c += (strlen(ast_config_AST_MODULE_DIR) + 1);
+
+ return c ? strdup(c) : c;
+}
+
+static char *complete_fn_3(const char *line, const char *word, int pos, int state)
+{
+ char *c;
+ char filename[256];
+
+ if (pos != 2)
return NULL;
if (word[0] == '/')
@@ -1391,7 +1412,7 @@
static struct ast_cli_entry cli_module_load_deprecated = {
{ "load", NULL },
handle_load_deprecated, NULL,
- NULL, complete_fn };
+ NULL, complete_fn_2 };
static struct ast_cli_entry cli_module_reload_deprecated = {
{ "reload", NULL },
@@ -1460,7 +1481,7 @@
{ { "module", "load", NULL },
handle_load, "Load a module by name",
- load_help, complete_fn, &cli_module_load_deprecated },
+ load_help, complete_fn_3, &cli_module_load_deprecated },
{ { "module", "reload", NULL },
handle_reload, "Reload configuration",
More information about the asterisk-commits
mailing list