Diff for /libaitcli/src/cli.c between versions 1.1 and 1.2

version 1.1, 2010/04/16 13:20:29 version 1.2, 2011/03/16 17:24:03
Line 11 Line 11
   
 /*  /*
  * cli_Cmd_Exit() Builtin helper function for Exit from Cli   * cli_Cmd_Exit() Builtin helper function for Exit from Cli
 * @cmds = Commands list * @buffer = CLI buffer
  * @idx = Selected command ID   * @idx = Selected command ID
  * @out = Output handle  
  * @args = Parsed arguments array   * @args = Parsed arguments array
 * return: 1 exit from Cli! * return: RETCODE_EOF exit from Cli!
 */  */
int cli_Cmd_Exit(void *cmds, int idx, FILE *out, char ** __restrict args)int cli_Cmd_Exit(void * __restrict buffer, int idx, char ** __restrict args)
 {  {
        return 1;        cli_Printf(buffer, "\n");
         return RETCODE_EOF;
 }  }
   
 /*  /*
  * cli_Cmd_Help() Builtin helper function for Help screen   * cli_Cmd_Help() Builtin helper function for Help screen
 * @cmds = Commands list * @buffer = CLI buffer
  * @idx = Selected command ID   * @idx = Selected command ID
  * @out = Output handle  
  * @args = Parsed arguments array   * @args = Parsed arguments array
 * return: -1 error, 0 = ok * return: RETCODE_ERR in error or RETCODE_OK
 */  */
int cli_Cmd_Help(void *cmds, int idx, FILE *out, char ** __restrict args)int cli_Cmd_Help(void * __restrict buffer, int idx, char ** __restrict args)
 {  {
        register int i;        linebuffer_t *buf = buffer;
        cliCommands_t *commands = cmds;        struct tagCommand *cmd;
   
        if (!cmds)        if (!buffer) {
                return -1;                cli_SetErr(EINVAL, "Error:: invalid input parameters ...");
                 return RETCODE_ERR;
         }
   
           cli_Printf(buf, "\n");
         if (!args) {          if (!args) {
                cli_Printf(out, "\n");                SLIST_FOREACH(cmd, &buf->line_cmds, cmd_next)
                for (i = 0; commands[i].cmd_name; i++)                        cli_Printf(buf, "%s\t\t%s\n", cmd->cmd_name, cmd->cmd_help);
                        cli_Printf(out, "%s\t\t%s\n", commands[i].cmd_name, commands[i].cmd_doc); 
         } else {          } else {
                 if (!args[1])                  if (!args[1])
                        cli_Printf(out, "Help screen::\n");                        cli_Printf(buf, "Help screen::\n");
                 else                  else
                         if (!strncmp(args[1], "---", 3))                          if (!strncmp(args[1], "---", 3))
                                return 0;                                return RETCODE_OK;
   
                for (i = 0; commands[i].cmd_name; i++) {                SLIST_FOREACH(cmd, &buf->line_cmds, cmd_next) {
                        if (args[1] && strcmp(args[1], commands[i].cmd_name))                        if (args[1] && (cmd->cmd_level != buf->line_level || strcmp(args[1], cmd->cmd_name)))
                                 continue;                                  continue;
   
                        cli_Printf(out, "%s%s\t\t%s\n", args[1] ? "Syntax::\n\t" : "", commands[i].cmd_name,                         cli_Printf(buf, "%s%s\t\t%s\n", args[1] ? "Syntax::\n\t" : "", cmd->cmd_name, 
                                        args[1] ? commands[i].cmd_help : commands[i].cmd_doc);                                        args[1] ? cmd->cmd_info: cmd->cmd_help);
                 }                  }
         }          }
           cli_Printf(buffer, "\r");
   
        return 0;        return RETCODE_OK;
 }  }
   
 /*  /*
  * cli_Cmd_Unsupported() Builtin helper function for unsupported commands   * cli_Cmd_Unsupported() Builtin helper function for unsupported commands
 * @cmds = Commands list * @buffer = CLI buffer
  * @idx = Selected command ID   * @idx = Selected command ID
  * @out = Output handle  
  * @args = Parsed arguments array   * @args = Parsed arguments array
 * return: -1 error, 0 = ok, 1 exit from Cli! * return: RETCODE_OK ok
 */  */
int cli_Cmd_Unsupported(void *cmds, int idx, FILE *out, char ** __restrict args)int cli_Cmd_Unsupported(void * __restrict buffer, int idx, char ** __restrict args)
 {  {
        cli_Printf(out, "Command %s not supported in this version ...\n", args[0]);        cli_Printf(buffer, "Command %s not supported in this version ...\n", args[0]);
        return 0;        return RETCODE_OK;
 }  }
   
 // ------------------------------------------------------------  
   
 /*  
  * cli_Comp_Filename() Builtin helper function for filename completion arguments  
  * @text = Text line  
  * @state = Position state  
  * return: NULL not found filename, != NULL filename  
 */  
 char *cli_Comp_Filename(const char *text, int state)  
 {  
         return rl_filename_completion_function(text, state);  
 }  
   
   
 // ------------------------------------------------------------  
   
 /*  
  * cli_PrintHelp() Helper print for missing command arguments  
  * @out = Output stream  
  * @cmds = Commands list  
  * @idx = Selected command ID  
  * return: -1 error, !=-1 ok  
  * return: none  
 */  
 inline int cli_PrintHelp(FILE *out, void *cmds, int idx)  
 {  
         cliCommands_t *c = cmds;  
   
         return cli_Printf(out, "%s\n", c[idx].cmd_help);  
 }  
   

Removed from v.1.1  
changed lines
  Added in v.1.2


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>