This is an automated email from Gerrit.

"Antonio Borneo <borneo.anto...@gmail.com>" just uploaded a new patch set to 
Gerrit, which you can find at https://review.openocd.org/c/openocd/+/8586

-- gerrit

commit 9245c2963d2f35053108b1338b3c0003e6cb2899
Author: Antonio Borneo <borneo.anto...@gmail.com>
Date:   Sat Dec 2 17:06:17 2023 +0100

    command: rewrite command 'command mode' as COMMAND_HANDLER
    
    Another step to drop jim_handler.
    
    Change-Id: I85cb567386a5aceb36aa273f8b66cbfd4a637c3f
    Signed-off-by: Antonio Borneo <borneo.anto...@gmail.com>

diff --git a/src/helper/command.c b/src/helper/command.c
index 1dd9d24fb0..dae5ef0aa7 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -842,22 +842,21 @@ COMMAND_HANDLER(handle_help_command)
        return retval;
 }
 
-static char *alloc_concatenate_strings(int argc, Jim_Obj * const *argv)
+static char *alloc_concatenate_strings(int argc, const char **argv)
 {
        char *prev, *all;
-       int i;
 
        assert(argc >= 1);
 
-       all = strdup(Jim_GetString(argv[0], NULL));
+       all = strdup(argv[0]);
        if (!all) {
                LOG_ERROR("Out of memory");
                return NULL;
        }
 
-       for (i = 1; i < argc; ++i) {
+       for (int i = 1; i < argc; ++i) {
                prev = all;
-               all = alloc_printf("%s %s", all, Jim_GetString(argv[i], NULL));
+               all = alloc_printf("%s %s", all, argv[i]);
                free(prev);
                if (!all) {
                        LOG_ERROR("Out of memory");
@@ -943,17 +942,16 @@ static enum command_mode get_command_mode(Jim_Interp 
*interp, const char *cmd_na
        return c->mode;
 }
 
-static int jim_command_mode(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
+COMMAND_HANDLER(handle_command_mode)
 {
-       struct command_context *cmd_ctx = current_command_context(interp);
-       enum command_mode mode = cmd_ctx->mode;
+       enum command_mode mode = CMD_CTX->mode;
 
-       if (argc > 1) {
-               char *full_name = alloc_concatenate_strings(argc - 1, argv + 1);
+       if (CMD_ARGC) {
+               char *full_name = alloc_concatenate_strings(CMD_ARGC, CMD_ARGV);
                if (!full_name)
-                       return JIM_ERR;
+                       return ERROR_FAIL;
 
-               mode = get_command_mode(interp, full_name);
+               mode = get_command_mode(CMD_CTX->interp, full_name);
 
                free(full_name);
        }
@@ -974,8 +972,8 @@ static int jim_command_mode(Jim_Interp *interp, int argc, 
Jim_Obj *const *argv)
                        mode_str = "unknown";
                        break;
        }
-       Jim_SetResultString(interp, mode_str, -1);
-       return JIM_OK;
+       command_print(CMD, "%s", mode_str);
+       return ERROR_OK;
 }
 
 int help_del_all_commands(struct command_context *cmd_ctx)
@@ -1114,7 +1112,7 @@ static const struct command_registration 
command_subcommand_handlers[] = {
        {
                .name = "mode",
                .mode = COMMAND_ANY,
-               .jim_handler = jim_command_mode,
+               .handler = handle_command_mode,
                .usage = "[command_name ...]",
                .help = "Returns the command modes allowed by a command: "
                        "'any', 'config', or 'exec'. If no command is "

-- 

Reply via email to