X-Git-Url: http://cloudbase.mooo.com/gitweb/z180-stamp.git/blobdiff_plain/7439a2b57aa403a4b4d0b5cf85095447bd9a3703..022330eb94f180b0b626988d294ce43c2191ad61:/avr/cmd_fat.c diff --git a/avr/cmd_fat.c b/avr/cmd_fat.c index 2d64251..ab16fa5 100644 --- a/avr/cmd_fat.c +++ b/avr/cmd_fat.c @@ -75,6 +75,29 @@ static bool check_abort(void) } +static const FLASH char * const FLASH rc_strings[] = { + FSTR("OK"), + FSTR("disk error"), + FSTR("internal error"), + FSTR("not ready"), + FSTR("no file"), + FSTR("no path"), + FSTR("invalid name"), + FSTR("denied"), + FSTR("exist"), + FSTR("invalid object"), + FSTR("write protected"), + FSTR("invalid drive"), + FSTR("not enabled"), + FSTR("no file system"), + FSTR("mkfs aborted"), + FSTR("timeout"), + FSTR("locked"), + FSTR("not enough core"), + FSTR("too many open files"), + FSTR("invalid parameter") + }; + static const FLASH char * const FLASH rc_names[] = { FSTR("OK"), FSTR("DISK_ERR"), @@ -112,16 +135,9 @@ void put_rc (FRESULT rc) } -void err(const char *fmt, ...) +const FLASH char * rctostr(FRESULT rc) { - va_list ap; - va_start(ap, fmt); - printf_P(PSTR("fat %s: "), cmdname); - vfprintf_P(stdout, fmt, ap); - va_end(ap); - printf_P(PSTR("\n")); - _delay_ms(20); - command_ret = CMD_RET_FAILURE; + return rc < ARRAY_SIZE(rc_strings) ? rc_strings[rc] : PSTR(" Unknown Error"); } static void swirl(void) @@ -182,13 +198,13 @@ static void strip_trailing_slash(PATH_T *p) static PATH_T *path_setup(char *string) { if (strlen(string) > PATH_MAX) { - err(PSTR("'%s': name too long"), string); + cmd_error(PSTR("'%s': name too long"), string); return NULL; } PATH_T *p = (PATH_T *) malloc(sizeof *p); if (p == NULL) { - err(PSTR("'%s': Out of Memory"), string); + cmd_error(PSTR("'%s': Out of Memory"), string); return NULL; } @@ -200,7 +216,7 @@ static PATH_T *path_setup(char *string) p->p_path[2] = '/'; len += 1; } else { - err(PSTR("'%s': Out of Memory"), string); + cmd_error(PSTR("'%s': Out of Memory"), string); return NULL; } } @@ -255,8 +271,6 @@ command_ret_t do_cd(cmd_tbl_t *cmdtp UNUSED, uint_fast8_t flag UNUSED, int argc, char *arg; FRESULT res = FR_OK; - cmdname = argv[0]; - if (argc < 2) { arg = getenv_str(PSTR(ENV_HOME)); if (arg == NULL) {