aboutsummaryrefslogtreecommitdiffstats
path: root/include/asterisk/cli.h
diff options
context:
space:
mode:
authorrizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b>2006-03-28 22:25:08 +0000
committerrizzo <rizzo@f38db490-d61c-443f-a65b-d21fe96a405b>2006-03-28 22:25:08 +0000
commit8e14140a52913683595b619cf498c670526efd84 (patch)
tree4f6b1dc0fd0d79a6b00c9c0872e6983a8bee15a2 /include/asterisk/cli.h
parentbbd7baead7df609d922e584ca37a2064fbcc4c66 (diff)
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: http://svn.digium.com/svn/asterisk/trunk@15817 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'include/asterisk/cli.h')
-rw-r--r--include/asterisk/cli.h19
1 files changed, 19 insertions, 0 deletions
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