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/+/8828

-- gerrit

commit 514fbe49b7f0ea2aadd95ed9cdac27366f04b6f1
Author: Antonio Borneo <borneo.anto...@gmail.com>
Date:   Sat Dec 2 23:40:56 2023 +0100

    target: rewrite commands 'configure' and 'cget' as COMMAND_HANDLER
    
    Rewrite only the command, but still use the old jimtcl specific
    code shared with 'target create'.
    
    Change-Id: Ie5e1c9eb237531121c2d143d1732cf281dfdc9ff
    Signed-off-by: Antonio Borneo <borneo.anto...@gmail.com>

diff --git a/src/target/target.c b/src/target/target.c
index 9d9d73a28e..4bd2f24cca 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -5223,22 +5223,28 @@ no_params:
        return JIM_OK;
 }
 
-static int jim_target_configure(Jim_Interp *interp, int argc, Jim_Obj * const 
*argv)
+COMMAND_HANDLER(handle_target_configure)
 {
-       struct command *c = jim_to_command(interp);
+       if (!CMD_ARGC)
+               return ERROR_COMMAND_SYNTAX_ERROR;
+
        struct jim_getopt_info goi;
 
-       jim_getopt_setup(&goi, interp, argc - 1, argv + 1);
-       goi.is_configure = !strcmp(c->name, "configure");
-       if (goi.argc < 1) {
-               Jim_WrongNumArgs(goi.interp, goi.argc, goi.argv,
-                                "missing: -option ...");
-               return JIM_ERR;
-       }
-       struct command_context *cmd_ctx = current_command_context(interp);
-       assert(cmd_ctx);
-       struct target *target = get_current_target(cmd_ctx);
-       return target_configure(&goi, target);
+       jim_getopt_setup(&goi, CMD_CTX->interp, CMD_ARGC, CMD_JIMTCL_ARGV);
+       goi.is_configure = !strcmp(CMD_NAME, "configure");
+
+       struct target *target = get_current_target(CMD_CTX);
+       int e = target_configure(&goi, target);
+
+       int reslen;
+       const char *result = Jim_GetString(Jim_GetResult(CMD_CTX->interp), 
&reslen);
+       if (reslen > 0)
+               command_print(CMD, "%s", result);
+
+       if (e != JIM_OK)
+               return ERROR_FAIL;
+
+       return ERROR_OK;
 }
 
 COMMAND_HANDLER(handle_target_examine)
@@ -5491,14 +5497,14 @@ static const struct command_registration 
target_instance_command_handlers[] = {
        {
                .name = "configure",
                .mode = COMMAND_ANY,
-               .jim_handler = jim_target_configure,
+               .handler = handle_target_configure,
                .help  = "configure a new target for use",
                .usage = "[target_attribute ...]",
        },
        {
                .name = "cget",
                .mode = COMMAND_ANY,
-               .jim_handler = jim_target_configure,
+               .handler = handle_target_configure,
                .help  = "returns the specified target attribute",
                .usage = "target_attribute",
        },

-- 

Reply via email to