X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=test_src%2Fcli-stub.c;h=ccbb7ba8d9b2106394fd17690f8067c02695524e;hb=27e7d731ffb22116dba8c67cead51829d8ebe137;hp=ec6ac1d21277f69ef4fcd5c3bfaff8dacf66e160;hpb=52ec168ece9d61bd9cb652235dfe8faee6232a11;p=avr-crypto-lib.git diff --git a/test_src/cli-stub.c b/test_src/cli-stub.c index ec6ac1d..ccbb7ba 100644 --- a/test_src/cli-stub.c +++ b/test_src/cli-stub.c @@ -17,16 +17,16 @@ along with this program. If not, see . */ /** - * + * * author: Daniel Otte * email: daniel.otte@rub.de * license: GPLv3 or later - * + * * components to help implementing simple command based interaction - * + * **/ - -#include + +#include #include #include #include @@ -38,52 +38,14 @@ cli_rx_fpt cli_rx = NULL; cli_tx_fpt cli_tx = NULL; -uint8_t cli_echo=1; +uint8_t cli_echo = 1; -void echo_ctrl(char* s); +void echo_ctrl(char* s); uint16_t max_cmd_length(PGM_VOID_P cmdlist); -int8_t search_and_call(char* cmd, uint16_t maxcmdlength, PGM_VOID_P cmdlist); -void cli_option_listing(char* buffer, PGM_VOID_P cmdlist); - +int8_t search_and_call(char* cmd, uint16_t maxcmdlength, PGM_VOID_P cmdlist); +void cli_option_listing(char* buffer, PGM_VOID_P cmdlist); +void cli_auto_help(uint16_t maxcmdlength, PGM_VOID_P cmdlist); -void cli_auto_help(uint16_t maxcmdlength, PGM_VOID_P cmdlist);/* -{ - cmdlist_entry_t item; - uint16_t i; - if(!cli_tx) - return; - - cli_putstr_P(PSTR("\r\n[auto help] available commands:\r\n" - " - -
\r\n")); - for(;;){ - item.cmd_name = (void*)pgm_read_word(cmdlist+0); - item.cmd_param_str = (void*)pgm_read_word(cmdlist+2); - item.cmd_function = (void_fpt)pgm_read_word(cmdlist+4); - cmdlist = (uint8_t*)cmdlist+CMDLIST_ENTRY_SIZE; - if(item.cmd_name==NULL){ - return; - } - cli_tx(' '); - cli_putstr_P(item.cmd_name); - i=maxcmdlength-strlen_P(item.cmd_name); - while(i--) - cli_tx(' '); - cli_putstr_P(PSTR(" - ")); - if(item.cmd_param_str==NULL){ - cli_putstr_P(PSTR("none \t- 0x")); - } else { - if(item.cmd_param_str==(void*)1){ - cli_putstr_P(PSTR("yes \t- 0x")); - } else { - cli_putstr_P(item.cmd_param_str); - cli_putstr_P(PSTR(" \t- 0x")); - } - } - cli_hexdump_rev(&item.cmd_function, 2); - cli_putstr_P(PSTR("\r\n")); - } -} -*/ typedef void(*str_fpt)(char*); #define CLI_ENTER 13 #define CLI_BACKSPACE 8 @@ -140,9 +102,11 @@ int8_t cmd_interface(PGM_VOID_P cmd_desc){ free(cli_buffer); return exit_code; } + cli_putstr(cli_buffer); + memset(cli_buffer, 0, cli_buffer_size); cli_buffer_index=0; - cli_putstr_P(PSTR("\r\n>")); + cli_putstr_P(PSTR(" DONE\r\n>")); completion_failed=0; break; case CLI_BACKSPACE: @@ -161,7 +125,7 @@ int8_t cmd_interface(PGM_VOID_P cmd_desc){ cli_option_listing(cli_buffer, cmd_desc); } else { uint16_t old_idx = cli_buffer_index; - completion_failed = + completion_failed = ~cli_completion(cli_buffer, maxcmdlength, cmd_desc); cli_buffer_index = strlen(cli_buffer); if(cli_echo && cli_tx){