This is an automated email from Gerrit.

?yvind Harboe (oyvindhar...@gmail.com) just uploaded a new patch set to Gerrit, 
which you can find at http://openocd.zylin.com/131

-- gerrit

commit 6d223053e3b290678414c021b9f9da1f669d8de0
Author: Øyvind Harboe <oyvind.har...@zylin.com>
Date:   Thu Oct 27 23:51:50 2011 +0200

    bugfixes: tinker a bit with the targets command
    
    return error when target can not be found instead of ERROR_OK,
    split fn.
    
    Change-Id: Iba5232d3862a490d0995c3bfece23685bd6856e3
    Signed-off-by: Øyvind Harboe <oyvind.har...@zylin.com>

diff --git a/src/target/target.c b/src/target/target.c
index bd15620..d28a9ca 100644
--- a/src/target/target.c
+++ b/src/target/target.c
@@ -1861,26 +1861,37 @@ int target_write_u8(struct target *target, uint32_t 
address, uint8_t value)
        return retval;
 }
 
+static int find_target(struct command_context *cmd_ctx, const char *name)
+{
+    struct target *target = get_target(name);
+    if (target == NULL) {
+       LOG_ERROR("Target: %s is unknown, try one of:\n", name);
+       return ERROR_FAIL;
+    }
+    if (!target->tap->enabled) {
+       LOG_USER("Target: TAP %s is disabled, "
+                "can't be the current target\n",
+                target->tap->dotted_name);
+       return ERROR_FAIL;
+    }
+    
+    cmd_ctx->current_target = target->target_number;
+    return ERROR_OK;
+}
+
+
 COMMAND_HANDLER(handle_targets_command)
 {
+       int retval = ERROR_OK;
        if (CMD_ARGC == 1)
        {
-               struct target *target = get_target(CMD_ARGV[0]);
-               if (target == NULL) {
-                       command_print(CMD_CTX,"Target: %s is unknown, try one 
of:\n", CMD_ARGV[0]);
-                       goto DumpTargets;
-               }
-               if (!target->tap->enabled) {
-                       command_print(CMD_CTX,"Target: TAP %s is disabled, "
-                                       "can't be the current target\n",
-                                       target->tap->dotted_name);
-                       return ERROR_FAIL;
-               }
-
-               CMD_CTX->current_target = target->target_number;
-               return ERROR_OK;
+           retval = find_target(CMD_CTX, CMD_ARGV[0]);
+           if (retval == ERROR_OK)
+           {
+               /* we're done! */
+               return retval;
+           }
        }
-DumpTargets:;
 
        struct target *target = all_targets;
        command_print(CMD_CTX, "    TargetName         Type       Endian 
TapName            State       ");
@@ -1911,7 +1922,7 @@ DumpTargets:;
                target = target->next;
        }
 
-       return ERROR_OK;
+       return ERROR_FAIL;
 }
 
 /* every 300ms we check for reset & powerdropout and issue a "reset halt" if 
so. */

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

Reply via email to