--- libaitcli/src/aitcli.c 2013/10/08 09:28:15 1.8.2.3 +++ libaitcli/src/aitcli.c 2013/10/08 09:41:20 1.8.2.6 @@ -3,7 +3,7 @@ * by Michael Pounov * * $Author: misho $ -* $Id: aitcli.c,v 1.8.2.3 2013/10/08 09:28:15 misho Exp $ +* $Id: aitcli.c,v 1.8.2.6 2013/10/08 09:41:20 misho Exp $ * ************************************************************************** The ELWIX and AITNET software is distributed under the following @@ -499,7 +499,7 @@ bufHelp(int idx, void * __restrict cli_buffer) if (!cli_buffer || idx < 0 || idx > MAX_BINDKEY) return RETCODE_ERR; - cli_Cmd_Help(buf, -1, NULL); + cli_Cmd_Help(buf, buf->line_level, NULL); printfEOL(buf, buf->line_len - 1, 1); printfEOL(buf, -1, 1); @@ -1469,6 +1469,8 @@ cliLoop(linebuffer_t * __restrict cli_buffer, const ch // exec_cmd ... i = 0; SLIST_FOREACH(cmd, &cli_buffer->line_cmds, cmd_next) { + if (cmd->cmd_level != cli_buffer->line_level) + continue; if (*items[0] && !strncmp(cmd->cmd_name, items[0], strlen(items[0]))) break; else @@ -1481,7 +1483,8 @@ cliLoop(linebuffer_t * __restrict cli_buffer, const ch } else if (cmd->cmd_func) { cli_Printf(cli_buffer, "\n"); - ret = cmd->cmd_func(cli_buffer, i, items); + ret = cmd->cmd_func(cli_buffer, + cli_buffer->line_level, items); } else { clrscrEOL(cli_buffer); printfCR(cli_buffer, 1);