summaryrefslogtreecommitdiff
path: root/src/openocd.c
diff options
context:
space:
mode:
authorntfreak <ntfreak@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-07-12 16:25:17 +0000
committerntfreak <ntfreak@b42882b7-edfa-0310-969c-e2dbd0fdcd60>2008-07-12 16:25:17 +0000
commit2e832a399a10fc00253b342f8cde9c5b1062fa63 (patch)
treeb679dc6381c72dc78e9c483c3399ae270c6dfa77 /src/openocd.c
parentcebfbfa661b4e53cabf23bbb32c227e0b1962c77 (diff)
downloadopenocd+libswd-2e832a399a10fc00253b342f8cde9c5b1062fa63.tar.gz
openocd+libswd-2e832a399a10fc00253b342f8cde9c5b1062fa63.tar.bz2
openocd+libswd-2e832a399a10fc00253b342f8cde9c5b1062fa63.tar.xz
openocd+libswd-2e832a399a10fc00253b342f8cde9c5b1062fa63.zip
- remove requirement for file2c.tcl
git-svn-id: svn://svn.berlios.de/openocd/trunk@800 b42882b7-edfa-0310-969c-e2dbd0fdcd60
Diffstat (limited to 'src/openocd.c')
-rw-r--r--src/openocd.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/openocd.c b/src/openocd.c
index 8cac5530..dcaca784 100644
--- a/src/openocd.c
+++ b/src/openocd.c
@@ -711,10 +711,14 @@ void add_jim(const char *name, int (*cmd)(Jim_Interp *interp, int argc, Jim_Obj
Jim_ListAppendElement(interp, helptext, cmd_entry);
}
-extern const unsigned char filedata_startup[];
+extern char binary_startup_tcl_start;
+extern char binary_startup_tcl_size;
void initJim(void)
{
+ char *script;
+ int script_len;
+
Jim_CreateCommand(interp, "openocd", Jim_Command_openocd, NULL, NULL);
Jim_CreateCommand(interp, "openocd_throw", Jim_Command_openocd_throw, NULL, NULL);
Jim_CreateCommand(interp, "find", Jim_Command_find, NULL, NULL);
@@ -734,23 +738,27 @@ void initJim(void)
add_default_dirs();
- if (Jim_Eval(interp, filedata_startup)==JIM_ERR)
+ script_len = (int)&binary_startup_tcl_size;
+ script = malloc(script_len + sizeof(char));
+ memcpy(script, &binary_startup_tcl_start, script_len);
+
+ /* null terminate */
+ script[script_len] = 0;
+
+ if (Jim_Eval(interp, script)==JIM_ERR)
{
LOG_ERROR("Failed to run startup.tcl (embedded into OpenOCD compile time)");
Jim_PrintErrorMessage(interp);
exit(-1);
}
+
+ free(script);
}
-
-
int handle_script_command(struct command_context_s *cmd_ctx, char *cmd, char **args, int argc)
{
- FILE *script_file;
-
if (argc != 1)
return ERROR_COMMAND_SYNTAX_ERROR;
-
/* Run a tcl script file */
return command_run_linef(cmd_ctx, "source [find {%s}]", args[0]);