remove target argument from gdb packet handling functions
[fw/openocd] / src / helper / command.c
index 5a68208a6ae421e2c791a6ff1d7092a19f83e1a8..b00a231268cb7fb77f47a2c7dc6b7261e0707e31 100644 (file)
@@ -144,11 +144,6 @@ void script_debug(Jim_Interp *interp, const char *name,
        {
                int len;
                const char *w = Jim_GetString(argv[i], &len);
-
-               /* end of line comment? */
-               if (*w == '#')
-                       break;
-
                char * t = alloc_printf("%s %s", dbg, w);
                free (dbg);
                dbg = t;
@@ -175,10 +170,6 @@ static const char **script_command_args_alloc(
        {
                int len;
                const char *w = Jim_GetString(argv[i], &len);
-               /* a comment may end the line early */
-               if (*w == '#')
-                       break;
-
                words[i] = strdup(w);
                if (words[i] == NULL)
                {
@@ -319,7 +310,7 @@ static void command_free(struct command *c)
        }
 
        if (c->name)
-               free(c->name);
+               free((void *)c->name);
        if (c->help)
                free((void*)c->help);
        if (c->usage)
@@ -685,7 +676,7 @@ int command_run_line(struct command_context *context, char *line)
                {
                        /* We do not print the connection closed error message */
                        Jim_MakeErrorMessage(interp);
-                       LOG_USER_N("%s\n", Jim_GetString(Jim_GetResult(interp), NULL));
+                       LOG_USER("%s", Jim_GetString(Jim_GetResult(interp), NULL));
                }
                if (retval == ERROR_OK)
                {
@@ -715,7 +706,7 @@ int command_run_line(struct command_context *context, char *line)
                                buff[chunk] = 0;
                                LOG_USER_N("%s", buff);
                        }
-                       LOG_USER_N("%s", "\n");
+                       LOG_USER_N("\n");
                }
                retval = ERROR_OK;
        }
@@ -732,6 +723,7 @@ int command_run_linef(struct command_context *context, const char *format, ...)
        if (string != NULL)
        {
                retval = command_run_line(context, string);
+               free(string);
        }
        va_end(ap);
        return retval;
@@ -777,12 +769,16 @@ static int jim_find(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
        return JIM_OK;
 }
 
-static int jim_echo(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
+COMMAND_HANDLER(jim_echo)
 {
-       if (argc != 2)
+       if (CMD_ARGC == 2 && !strcmp(CMD_ARGV[0], "-n"))
+       {
+               LOG_USER_N("%s", CMD_ARGV[1]);
+               return JIM_OK;
+       }
+       if (CMD_ARGC != 1)
                return JIM_ERR;
-       const char *str = Jim_GetString(argv[1], NULL);
-       LOG_USER("%s", str);
+       LOG_USER("%s", CMD_ARGV[0]);
        return JIM_OK;
 }
 
@@ -865,8 +861,7 @@ static void command_help_show_wrap(const char *str, unsigned n, unsigned n2)
                if (next - last < HELP_LINE_WIDTH(n))
                        cp = next;
                command_help_show_indent(n);
-               LOG_USER_N("%.*s", (int)(cp - last), last);
-               LOG_USER_N("\n");
+               LOG_USER("%.*s", (int)(cp - last), last);
                last = cp + 1;
                n = n2;
        }
@@ -1254,6 +1249,15 @@ static const struct command_registration command_subcommand_handlers[] = {
 };
 
 static const struct command_registration command_builtin_handlers[] = {
+       {
+               .name = "echo",
+               .handler = jim_echo,
+               .mode = COMMAND_ANY,
+               .help = "Logs a message at \"user\" priority. "
+                       "Output message to stdout. "
+                       "Option \"-n\" suppresses trailing newline",
+               .usage = "[-n] string",
+       },
        {
                .name = "add_help_text",
                .handler = handle_help_add_command,
@@ -1357,7 +1361,6 @@ struct command_context* command_init(const char *startup_tcl, Jim_Interp *interp
                        Jim_NewStringObj(interp, HostOs , strlen(HostOs)));
 
        Jim_CreateCommand(interp, "ocd_find", jim_find, NULL, NULL);
-       Jim_CreateCommand(interp, "echo", jim_echo, NULL, NULL);
        Jim_CreateCommand(interp, "capture", jim_capture, NULL, NULL);
 
        register_commands(context, NULL, command_builtin_handlers);