From e5c455e15ade8146d91acd13d3b852ce6804eae9 Mon Sep 17 00:00:00 2001 From: Luigi Rizzo Date: Tue, 28 Mar 2006 22:25:08 +0000 Subject: bring in the code that was discussed on Mantis #6068, which is the basis for several simplifications and fixes to the CLI interfaces. The core is in cli.c, some documentation on a new function to help command completion is in cli.h, and one line of glue code in the other two files. Next step is to bring in the patches described in #6066 and other simplifications. git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@15817 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- include/asterisk/cli.h | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) (limited to 'include/asterisk') diff --git a/include/asterisk/cli.h b/include/asterisk/cli.h index d230efe97..d9c9b7ab3 100644 --- a/include/asterisk/cli.h +++ b/include/asterisk/cli.h @@ -71,10 +71,29 @@ struct ast_cli_entry { char *(*generator)(const char *line, const char *word, int pos, int n); /*! For keeping track of usage */ int inuse; + struct module *module; /*! module this belongs to */ + char *_full_cmd; /* built at load time from cmda[] */ /*! For linking */ AST_LIST_ENTRY(ast_cli_entry) list; }; +/*! + * \brief Helper function to generate cli entries from a NULL-terminated array. + * Returns the n-th matching entry from the array, or NULL if not found. + * Can be used to implement generate() for static entries as below + * (in this example we complete the word in position 2): + \code + char *my_generate(const char *line, const char *word, int pos, int n) + { + static char *choices = { "one", "two", "three", NULL }; + if (pos == 2) + return ast_cli_complete(word, choices, n); + else + return NULL; + } + \endcode + */ +char *ast_cli_complete(const char *word, char *const choices[], int pos); /*! \brief Interprets a command * Interpret a command s, sending output to fd -- cgit v1.2.3