--- libaitcli/inc/aitcli.h 2010/06/07 11:54:00 1.2.2.7 +++ libaitcli/inc/aitcli.h 2010/06/09 09:32:30 1.2.2.12 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitcli.h,v 1.2.2.7 2010/06/07 11:54:00 misho Exp $ +* $Id: aitcli.h,v 1.2.2.12 2010/06/09 09:32:30 misho Exp $ * *************************************************************************/ #ifndef __AITCLI_H @@ -166,7 +166,7 @@ typedef struct { /* Commands structure for CLI */ -typedef int (*cmd_func_t)(/*linebuffer_t **/ void * __restrict buffer, int idx, char ** __restrict argv); +typedef int (*cmd_func_t)(/*linebuffer_t **/ void * __restrict buffer, int idx, char ** __restrict args); struct tagCommand { int cmd_level; @@ -200,6 +200,7 @@ typedef struct { bindkey_t *line_keys; + int line_level; commands_t line_cmds; int line_in; @@ -215,6 +216,18 @@ inline int cli_GetErrno(); inline const char *cli_GetError(); +/* CLI Helper functions */ + +/* + * cli_Cmd_Unsupported() Builtin helper function for unsupported commands + * @buffer = CLI buffer + * @idx = Selected command ID + * @args = Parsed arguments array + * return: RETCODE_OK ok +*/ +int cli_Cmd_Unsupported(void * __restrict buffer, int idx, char ** __restrict args); + + /* CLI Functions */ /* @@ -313,6 +326,12 @@ inline void cli_setPrompt(linebuffer_t * __restrict bu * return: none */ inline void cli_Printf(linebuffer_t * __restrict buffer, char *fmt, ...); +/* + * cli_PrintHelp() Print help screen + * @buffer = CLI buffer + * return: none +*/ +inline void cli_PrintHelp(linebuffer_t * __restrict buffer); /* * cliEnd() Clear data, Free resources and close CLI session @@ -359,37 +378,7 @@ int cliLoop(linebuffer_t * __restrict buffer, const ch * @win = window size of tty * return: RETCODE_ERR error, RETCODE_OK ok */ -int cliNetLoop(linebuffer_t * __restrict buffer, const char *csHistFile, int sock, - struct termios *term, struct winsize *win); - - - -/* - * cli_Make_Comp_Commands - Declare helper function for Commands completion arguments -*/ -#define CLI_MAKE_COMP_COMMANDS(FUNC, CMDS) \ - char *FUNC(const char *text, int state) \ - { \ - register int i; \ - int len = strlen(text); \ - for (i = state; CMDS[i].cmd_name; i++) { \ - if (strncmp(CMDS[i].cmd_name, "---", 3) && \ - !strncmp(CMDS[i].cmd_name, text, len)) \ - return strdup(CMDS[i].cmd_name); \ - } \ - return NULL; \ - } - -/* - * cli_Make_Comp_Args - Declare helper function for Arguments completion -*/ -#define CLI_MAKE_COMP_ARGS(FUNC, ARGS) \ - char *FUNC(const char *text __attribute__((unused)), int state) \ - { \ - while (ARGS[state]) \ - return strdup(ARGS[state]); \ - return NULL; \ - } +int cliNetLoop(linebuffer_t * __restrict buffer, const char *csHistFile, int sock); #endif