X-Git-Url: https://review.openocd.org/gitweb?p=openocd.git;a=blobdiff_plain;f=src%2Fopenocd.c;h=dcaca7847abee926d841dfcb3cc4c2969438500e;hp=8cac5530a48b49c1836531d5e1047da48b5dcd99;hb=2e832a399a10fc00253b342f8cde9c5b1062fa63;hpb=69c6f1f7eab96ea47328ece9d71292a71af6ce9c diff --git a/src/openocd.c b/src/openocd.c index 8cac5530a4..dcaca7847a 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]);