X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fhelper%2Foptions.c;h=3a95df46d0799923f12af0f3b7c165eaf0c24f4b;hb=c86d7bdad4418f4fc3d81a68398187c6480316fa;hp=a0c9a9e92859cef112913c985bbe1a7f4b7a856f;hpb=4b9bdd664a79d5713b22a178086b071abc049d01;p=openocd.git diff --git a/src/helper/options.c b/src/helper/options.c index a0c9a9e928..3a95df46d0 100644 --- a/src/helper/options.c +++ b/src/helper/options.c @@ -25,15 +25,14 @@ #endif #include "configuration.h" -#include "log.h" // @todo the inclusion of server.h here is a layering violation -#include "server.h" +#include #include static int help_flag, version_flag; -static struct option long_options[] = +static const struct option long_options[] = { {"help", no_argument, &help_flag, 1}, {"version", no_argument, &version_flag, 1}, @@ -46,7 +45,7 @@ static struct option long_options[] = {0, 0, 0, 0} }; -int configuration_output_handler(struct command_context_s *context, const char* line) +int configuration_output_handler(struct command_context *context, const char* line) { LOG_USER_N("%s", line); @@ -75,21 +74,21 @@ static void add_default_dirs(void) add_script_search_dir(strExePath); } /* - * Add support for the default (as of 20080121) layout when - * using autotools and cygwin to build native MinGW binary. + * Add support for the default (as of 20091118) layout when + * using autotools and cygwin/MinGW to build native binary. * Path separator is converted to UNIX style so that MinGW is * pleased. * * bin/openocd.exe - * lib/openocd/event/at91eb40a_reset.cfg - * lib/openocd/target/at91eb40a.cfg + * share/openocd/scripts/interface/dummy.cfg + * share/openocd/scripts/target/at91eb40a.cfg */ { char strExePath [MAX_PATH]; char *p; GetModuleFileName (NULL, strExePath, MAX_PATH); *strrchr(strExePath, '\\') = 0; - strcat(strExePath, "/../lib/"PACKAGE); + strcat(strExePath, "/../share/"PACKAGE"/scripts"); for (p = strExePath; *p; p++) { if (*p == '\\') *p = '/'; @@ -102,13 +101,28 @@ static void add_default_dirs(void) * listed last in the built-in search order, so the user can * override these scripts with site-specific customizations. */ - /// @todo Implement @c add_script_search_dir("${HOME}/.openocd"). + + const char *home = getenv("HOME"); + + if (home) + { + char *path; + + path = alloc_printf("%s/.openocd", home); + + if (path) + { + add_script_search_dir(path); + free(path); + } + } + add_script_search_dir(PKGDATADIR "/site"); add_script_search_dir(PKGDATADIR "/scripts"); #endif } -int parse_cmdline_args(struct command_context_s *cmd_ctx, int argc, char *argv[]) +int parse_cmdline_args(struct command_context *cmd_ctx, int argc, char *argv[]) { int c; char command_buffer[128]; @@ -176,7 +190,7 @@ int parse_cmdline_args(struct command_context_s *cmd_ctx, int argc, char *argv[] if (help_flag) { - LOG_OUTPUT("Open On-Chip Debugger\n(c) 2005-2008 by Dominic Rath\n\n"); + LOG_OUTPUT("Open On-Chip Debugger\nLicensed under GNU GPL v2\n"); LOG_OUTPUT("--help | -h\tdisplay this help\n"); LOG_OUTPUT("--version | -v\tdisplay OpenOCD version\n"); LOG_OUTPUT("--file | -f\tuse configuration file \n");