Commands that do not need to use Jim should be registered as
high-level command handlers.

Signed-off-by: Zachary T Welch <z...@superlucidity.net>
---
 src/helper/ioutil.c |   29 +++++++++++------------------
 1 files changed, 11 insertions(+), 18 deletions(-)

diff --git a/src/helper/ioutil.c b/src/helper/ioutil.c
index ed82ba1..27bffad 100644
--- a/src/helper/ioutil.c
+++ b/src/helper/ioutil.c
@@ -401,25 +401,18 @@ void copydir(char *name, char *destdir)
 
 
 
-static int
-zylinjtag_Jim_Command_rm(Jim_Interp *interp,
-                                   int argc,
-               Jim_Obj * const *argv)
+COMMAND_HANDLER(handle_rm_command)
 {
-       int del;
-       if (argc != 2)
-       {
-               Jim_WrongNumArgs(interp, 1, argv, "rm ?dirorfile?");
-               return JIM_ERR;
-       }
+       if (CMD_ARGC != 1)
+               return ERROR_INVALID_ARGUMENTS;
 
-       del = 0;
-       if (unlink(Jim_GetString(argv[1], NULL)) == 0)
-               del = 1;
-       if (rmdir(Jim_GetString(argv[1], NULL)) == 0)
-               del = 1;
+       bool del = false;
+       if (rmdir(CMD_ARGV[0]) == 0)
+               del = true;
+       else if (unlink(CMD_ARGV[0]) == 0)
+               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,
                .help = "display available ram memory",
        },
-       // jim handlers
        {
                .name = "rm",
                .mode = COMMAND_ANY,
-               .jim_handler = &zylinjtag_Jim_Command_rm,
+               .handler = &handle_rm_command,
                .help = "remove a file",
                .usage = "<file>",
        },
+       // jim handlers
        {
                .name = "peek",
                .mode = COMMAND_ANY,
-- 
1.6.4.4

_______________________________________________
Openocd-development mailing list
Openocd-development@lists.berlios.de
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to