X-Git-Url: http://cloudbase.mooo.com/gitweb/z180-stamp.git/blobdiff_plain/022330eb94f180b0b626988d294ce43c2191ad61..df728b3578bfba42632b2a3bd7250fba70776b22:/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); + } }