From 414caa77d5709bf3372d1f9245312781eee7961b Mon Sep 17 00:00:00 2001 From: Leo C Date: Fri, 31 Aug 2018 23:36:06 +0200 Subject: error handling: improved cmd_error() - print fatfs error strings --- avr/command.c | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) (limited to 'avr/command.c') diff --git a/avr/command.c b/avr/command.c index b0d9c90..ff3a685 100644 --- a/avr/command.c +++ b/avr/command.c @@ -22,6 +22,7 @@ #include "env.h" #include "debug.h" #include "getopt-min.h" +#include "strerror.h" #define DEBUG_CMD 0 /* set to 1 to debug */ @@ -791,16 +792,24 @@ int cmd_process_error(cmd_tbl_t *cmdtp, int err) return 0; } - -void cmd_error(const char *fmt, ...) +void cmd_error(int status, int errnum, const char *fmt, ...) { va_list ap; va_start(ap, fmt); print_prefixed_name(cmd_invocation_ptr); - my_puts_P(PSTR(": ")); - vfprintf_P(stdout, fmt, ap); + if (fmt != NULL) { + my_puts_P(PSTR(": ")); + vfprintf_P(stdout, fmt, ap); + } va_end(ap); + + if (errnum != 0) + printf_P(PSTR(": %S"), my_strerror_P(errnum)); + putchar('\n'); _delay_ms(20); - //command_ret = CMD_RET_FAILURE; + + if (status != 0) { + longjmp(cmd_jbuf, 1); + } } -- cgit v1.2.3