switch 'rm' command away from using Jim

Commands that do not need to use Jim should be registered as
high-level command handlers.
This commit is contained in:
Zachary T Welch 2009-12-03 16:22:46 -08:00
parent c5eb8e29bd
commit b58c1d808f
1 changed files with 11 additions and 18 deletions

View File

@ -401,25 +401,18 @@ void copydir(char *name, char *destdir)
static int COMMAND_HANDLER(handle_rm_command)
zylinjtag_Jim_Command_rm(Jim_Interp *interp,
int argc,
Jim_Obj * const *argv)
{ {
int del; if (CMD_ARGC != 1)
if (argc != 2) return ERROR_INVALID_ARGUMENTS;
{
Jim_WrongNumArgs(interp, 1, argv, "rm ?dirorfile?");
return JIM_ERR;
}
del = 0; bool del = false;
if (unlink(Jim_GetString(argv[1], NULL)) == 0) if (rmdir(CMD_ARGV[0]) == 0)
del = 1; del = true;
if (rmdir(Jim_GetString(argv[1], NULL)) == 0) else if (unlink(CMD_ARGV[0]) == 0)
del = 1; del = true;
return del ? JIM_OK : JIM_ERR; return del ? ERROR_OK : ERROR_FAIL;
} }
@ -658,14 +651,14 @@ static const struct command_registration ioutil_command_handlers[] = {
.mode = COMMAND_ANY, .mode = COMMAND_ANY,
.help = "display available ram memory", .help = "display available ram memory",
}, },
// jim handlers
{ {
.name = "rm", .name = "rm",
.mode = COMMAND_ANY, .mode = COMMAND_ANY,
.jim_handler = &zylinjtag_Jim_Command_rm, .handler = &handle_rm_command,
.help = "remove a file", .help = "remove a file",
.usage = "<file>", .usage = "<file>",
}, },
// jim handlers
{ {
.name = "peek", .name = "peek",
.mode = COMMAND_ANY, .mode = COMMAND_ANY,