cli: Auto-complete File not Module for core set debug.
authorAlexander Traud <pabstraud@compuserve.com>
Tue, 18 Oct 2016 08:01:47 +0000 (10:01 +0200)
committerAlexander Traud <pabstraud@compuserve.com>
Tue, 18 Oct 2016 08:01:47 +0000 (10:01 +0200)
Since Asterisk 1.8, the command "core set debug" on the command-line interface
asks not for a file (.c) but a module name. This change shows modules (.so) on
the auto-completion via a tabulator or the question mark. Now, when you
partially type a module name, TAB or ?, you get the correct candidiates.

ASTERISK-26480

Change-Id: I1213f1dd409bd4ff8de08ad80cb0c73cafb1bae0

main/cli.c

index 8af20b6..3ba743d 100644 (file)
@@ -449,19 +449,11 @@ static char *handle_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args
        case CLI_INIT:
                e->command = "core set debug";
                e->usage =
-#if !defined(LOW_MEMORY)
                        "Usage: core set debug [atleast] <level> [module]\n"
-#else
-                       "Usage: core set debug [atleast] <level>\n"
-#endif
                        "       core set debug off\n"
                        "\n"
-#if !defined(LOW_MEMORY)
                        "       Sets level of debug messages to be displayed or\n"
                        "       sets a module name to display debug messages from.\n"
-#else
-                       "       Sets level of debug messages to be displayed.\n"
-#endif
                        "       0 or off means no messages should be displayed.\n"
                        "       Equivalent to -d[d[...]] on startup\n";
                return NULL;
@@ -489,13 +481,9 @@ static char *handle_debug(struct ast_cli_entry *e, int cmd, struct ast_cli_args
                        } else if (a->n == (22 - numbermatch) && a->pos == 3 && ast_strlen_zero(argv3)) {
                                return ast_strdup("atleast");
                        }
-#if !defined(LOW_MEMORY)
                } else if ((a->pos == 4 && !atleast && strcasecmp(argv3, "off") && strcasecmp(argv3, "channel"))
                        || (a->pos == 5 && atleast)) {
-                       const char *pos = S_OR(a->argv[a->pos], "");
-
-                       return ast_complete_source_filename(pos, a->n);
-#endif
+                       return ast_module_helper(a->line, a->word, a->pos, a->n, a->pos, 0);
                }
                return NULL;
        }