diff --git a/src/helper/options.c b/src/helper/options.c index b6b2c6dcc..1e717be89 100644 --- a/src/helper/options.c +++ b/src/helper/options.c @@ -123,10 +123,31 @@ int parse_cmdline_args(struct command_context_s *cmd_ctx, int argc, char *argv[] exit(-1); } +#ifdef _WIN32 + /* Add the parent of the directory where openocd.exe resides to the + * config script search path. + * Directory layout: + * bin\openocd.exe + * lib\openocd + * event\at91eb40a_reset.cfg + * target\at91eb40a.cfg + */ + { + char strExePath [MAX_PATH]; + GetModuleFileName (NULL, strExePath, MAX_PATH); + /* Either this code will *always* work or it will SEGFAULT giving + * excellent information on the culprit. + */ + *strrchr(strExePath, '\\')=0; + strcat(strExePath, "\\.."); + add_script_search_dir(strExePath); + } +#else /* Add dir for openocd supplied scripts last so that user can over ride those scripts if desired. */ add_script_search_dir(PKGDATADIR); add_script_search_dir(PKGLIBDIR); +#endif return ERROR_OK; }