From: Leo C Date: Sat, 30 Aug 2014 10:48:34 +0000 (+0200) Subject: help cmd: fix column alignment X-Git-Tag: hexrel-2~13 X-Git-Url: http://cloudbase.mooo.com/gitweb/z180-stamp.git/commitdiff_plain/deb08cb66fa85fd0dc011d642e1a707da0477d9b help cmd: fix column alignment --- diff --git a/avr/command.c b/avr/command.c index 15b1c72..f1e184a 100644 --- a/avr/command.c +++ b/avr/command.c @@ -24,10 +24,14 @@ static void print_blanks(int_fast8_t count) my_puts_P(PSTR(" ")); } -static void print_usage_line(const FLASH char *name, const FLASH char *usage) +static void print_usage_line(const FLASH char *name, int width, + const FLASH char *usage) { + width -= strlen_P(name); + if (width < 0) + width = 0; my_puts_P(name); - print_blanks(CONFIG_SYS_MAXARGS - strlen_P(name)); + print_blanks(width); my_puts_P(PSTR(" - ")); my_puts_P(usage); my_puts_P(PSTR("\n")); @@ -70,7 +74,7 @@ int cmd_tbl_item_count(void) command_ret_t _do_help(cmd_tbl_t *cmd_start, int cmd_items, cmd_tbl_t * cmdtp, int flag, int argc, char * const argv[]) { - uint_fast8_t i; + uint_fast8_t i, max_len = 0; command_ret_t rcode = CMD_RET_SUCCESS; (void) flag; @@ -83,6 +87,9 @@ command_ret_t _do_help(cmd_tbl_t *cmd_start, int cmd_items, cmd_tbl_t * cmdtp, cmdtp = cmd_start; for (i = 0; i < cmd_items; i++) { cmd_array[i] = cmdtp++; + uint_fast8_t l = strlen_P(cmd_array[i]->name); + if (l > max_len) + max_len = l; } /* Sort command list */ @@ -98,9 +105,9 @@ command_ret_t _do_help(cmd_tbl_t *cmd_start, int cmd_items, cmd_tbl_t * cmdtp, if (usage == NULL) continue; #ifdef GCC_BUG_61443 - print_usage_line(cmd_array[i]->name, usage); + print_usage_line(cmd_array[i]->name, max_len, usage); #else - printf_P(PSTR("%-" stringify(CONFIG_SYS_MAXARGS) "S - %S\n"), + printf_P(PSTR("%-" stringify(8) /*FIXME*/ "S - %S\n"), cmd_array[i]->name, usage); #endif } @@ -165,10 +172,10 @@ cmd_tbl_t *find_cmd (const char *cmd) command_ret_t cmd_usage(const FLASH cmd_tbl_t *cmdtp) { // printf("%s - %s\n\n", cmdtp->name, cmdtp->usage); - print_usage_line(cmdtp->name, cmdtp->usage); + print_usage_line(cmdtp->name, 0, cmdtp->usage); #if 0 my_puts_P(cmdtp->name); - print_blanks(CONFIG_SYS_MAXARGS - strlen_P(cmdtp->name)); + print_blanks(/*FIXME*/ 8 - strlen_P(cmdtp->name)); my_puts_P(PSTR(" - ")); my_puts_P(cmdtp->usage); my_puts_P(PSTR("\n\n")); diff --git a/include/config.h b/include/config.h index 396fd59..4093a67 100644 --- a/include/config.h +++ b/include/config.h @@ -21,8 +21,8 @@ #define CONFIG_SYS_I2C_CLOCK 100000L /* SCL clock frequency in Hz */ #define CONFIG_SYS_CBSIZE 250 -#define CONFIG_SYS_ENV_NAMELEN 16 #define CONFIG_SYS_MAXARGS 8 +#define CONFIG_SYS_ENV_NAMELEN 16 #define CONFIG_SYS_PROMPT "=> "