summaryrefslogtreecommitdiff
path: root/src/helper/command.c
diff options
context:
space:
mode:
authorZachary T Welch <zw@superlucidity.net>2009-11-10 04:37:17 -0800
committerZachary T Welch <zw@superlucidity.net>2009-11-13 10:55:27 -0800
commitdeede35c270b078ae63713cfc12aa2bbc9eb78a7 (patch)
treed7cda65e0a71e1fa50d3a493ab18077fa0ca2d69 /src/helper/command.c
parentcc63d6e72b49dd01706c4d768c1f9bb91db2ae1d (diff)
downloadopenocd+libswd-deede35c270b078ae63713cfc12aa2bbc9eb78a7.tar.gz
openocd+libswd-deede35c270b078ae63713cfc12aa2bbc9eb78a7.tar.bz2
openocd+libswd-deede35c270b078ae63713cfc12aa2bbc9eb78a7.tar.xz
openocd+libswd-deede35c270b078ae63713cfc12aa2bbc9eb78a7.zip
command_handler_t: make args parameter const
This patch prevents command handlers from modifying the strings passed in the 'args' array.
Diffstat (limited to 'src/helper/command.c')
-rw-r--r--src/helper/command.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/helper/command.c b/src/helper/command.c
index 4ce50855..7a42ab20 100644
--- a/src/helper/command.c
+++ b/src/helper/command.c
@@ -48,7 +48,7 @@ int fast_and_dangerous = 0;
Jim_Interp *interp = NULL;
static int run_command(command_context_t *context,
- command_t *c, char *words[], unsigned num_words);
+ command_t *c, const char *words[], unsigned num_words);
static void tcl_output(void *privData, const char *file, unsigned line,
const char *function, const char *string)
@@ -141,7 +141,7 @@ static int script_command(Jim_Interp *interp, int argc, Jim_Obj *const *argv)
log_add_callback(tcl_output, tclOutput);
- retval = run_command(context, c, words, nwords);
+ retval = run_command(context, c, (const char **)words, nwords);
log_remove_callback(tcl_output, tclOutput);
@@ -435,7 +435,7 @@ char *command_name(struct command_s *c, char delim)
}
static int run_command(command_context_t *context,
- command_t *c, char *words[], unsigned num_words)
+ command_t *c, const char *words[], unsigned num_words)
{
int start_word = 0;
if (!((context->mode == COMMAND_CONFIG) || (c->mode == COMMAND_ANY) || (c->mode == context->mode)))
@@ -445,7 +445,9 @@ static int run_command(command_context_t *context,
return ERROR_FAIL;
}
- int retval = c->handler(context, c->name, words + start_word + 1, num_words - start_word - 1);
+ unsigned argc = num_words - start_word - 1;
+ const char **args = words + start_word + 1;
+ int retval = c->handler(context, c->name, args, argc);
if (retval == ERROR_COMMAND_SYNTAX_ERROR)
{
/* Print help for command */