From 2e832a399a10fc00253b342f8cde9c5b1062fa63 Mon Sep 17 00:00:00 2001 From: ntfreak Date: Sat, 12 Jul 2008 16:25:17 +0000 Subject: - remove requirement for file2c.tcl git-svn-id: svn://svn.berlios.de/openocd/trunk@800 b42882b7-edfa-0310-969c-e2dbd0fdcd60 --- src/openocd.c | 22 +++++++++++++++------- 1 file changed, 15 insertions(+), 7 deletions(-) (limited to 'src/openocd.c') 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]); -- cgit v1.2.3