diff options
author | Corey Farrell <git@cfware.com> | 2017-11-07 18:07:35 -0500 |
---|---|---|
committer | Corey Farrell <git@cfware.com> | 2017-11-17 09:28:43 -0500 |
commit | 0b8b153d3c30f192725dcf3640f716331b24640f (patch) | |
tree | dac23869f08b4fe235954ce086ee0ef9c83ae349 /include | |
parent | 2e9c7f9b8f080a4b5847da690633fd090c842088 (diff) |
CLI: Create ast_cli_completion_vector.
This is a rewrite of ast_cli_completion_matches using a vector to build
the list. The original function calls the vector version, NULL
terminates the vector and extracts the elements array.
One change in behavior the results are now sorted and deduplicated. This
will solve bugs where some duplicate checking was done before the list
was sorted.
Change-Id: Iede20c5b4d965fa5ec71fda136ce9425eeb69519
Diffstat (limited to 'include')
-rw-r--r-- | include/asterisk/cli.h | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/include/asterisk/cli.h b/include/asterisk/cli.h index c51d89eb8..7bf473c61 100644 --- a/include/asterisk/cli.h +++ b/include/asterisk/cli.h @@ -301,6 +301,27 @@ int ast_cli_generatornummatches(const char *, const char *); char **ast_cli_completion_matches(const char *, const char *); /*! + * \brief Generates a vector of strings for CLI completion. + * + * \param text Complete input being matched. + * \param word Current word being matched + * + * The results contain strings that both: + * 1) Begin with the string in \a word. + * 2) Are valid in a command after the string in \a text. + * + * The first entry (offset 0) of the result is the longest common substring + * in the results, useful to extend the string that has been completed. + * Subsequent entries are all possible values. + * + * \note All strings and the vector itself are malloc'ed and must be freed + * by the caller. + * + * \note The vector is sorted and does not contain any duplicates. + */ +struct ast_vector_string *ast_cli_completion_vector(const char *text, const char *word); + +/*! * \brief Command completion for the list of active channels. * * This can be called from a CLI command completion function that wants to |