X-Git-Url: https://git.cryptolib.org/?a=blobdiff_plain;f=test_src%2Fcli.c;h=f01547d03ddf07200e9d0f5c9f7db005530437b6;hb=3a571bf2d55c87a3d08641f7df7681c923717eb1;hp=8c15f5fb4e58e256873e007ce86b09432f07d897;hpb=7cd0bb77cb76ef7c45b41fd33ca364ddb89ec1ad;p=avr-crypto-lib.git diff --git a/test_src/cli.c b/test_src/cli.c index 8c15f5f..f01547d 100644 --- a/test_src/cli.c +++ b/test_src/cli.c @@ -29,6 +29,7 @@ #include #include #include +#include "config.h" int16_t findstring_d0(const char* str, const char* v){ uint8_t i=0; @@ -56,8 +57,26 @@ int16_t findstring_d0_P(const char* str, PGM_P v){ return -1; } +#ifdef CLI_AUTO_HELP +#include "uart.h" + +void cli_auto_help_P(PGM_P dbzstr){ + char c; + uart_putstr_P(PSTR("\r\n[auto help] available commands are:\r\n\t")); + do{ + while((c=pgm_read_byte(dbzstr++))!=0){ + uart_putc(c); + } + uart_putstr_P(PSTR("\r\n\t")); + }while((c=pgm_read_byte(dbzstr))!=0); + uart_putstr_P(PSTR("\r\n")); +} + +#endif + int16_t execcommand_d0_P(const char* str, PGM_P v, void(*fpt[])(void) ){ uint8_t i=0; + PGM_P commands=v; while(pgm_read_byte(v)){ if(!strcmp_P(str, v)){ (fpt[i])(); @@ -67,6 +86,7 @@ int16_t execcommand_d0_P(const char* str, PGM_P v, void(*fpt[])(void) ){ ; ++i; } + cli_auto_help_P(commands); return -1; }