X-Git-Url: https://review.openocd.org/gitweb?a=blobdiff_plain;f=src%2Fhelper%2Foptions.c;h=f8db2cda2618ea454f315e8a01a1a77839462da0;hb=706284a8fd562d5a6e2c1f123f8cb366b7e49e7d;hp=e26782ff937473cde80cf5bc265b373b249356f2;hpb=1186f7efa72a86a7000dce60b090bd4f822cdceb;p=openocd.git diff --git a/src/helper/options.c b/src/helper/options.c index e26782ff93..f8db2cda26 100644 --- a/src/helper/options.c +++ b/src/helper/options.c @@ -2,7 +2,7 @@ * Copyright (C) 2004, 2005 by Dominic Rath * * Dominic.Rath@gmx.de * * * - * Copyright (C) 2007,2008 Øyvind Harboe * + * Copyright (C) 2007-2010 Øyvind Harboe * * oyvind.harboe@zylin.com * * * * This program is free software; you can redistribute it and/or modify * @@ -26,13 +26,13 @@ #include "configuration.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}, @@ -74,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 = '/'; @@ -101,7 +101,22 @@ 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 @@ -162,20 +177,18 @@ int parse_cmdline_args(struct command_context *cmd_ctx, int argc, char *argv[]) add_config_command(optarg); } break; - case 'p': /* --pipe | -p */ -#if BUILD_ECOSBOARD == 1 - /* pipes unsupported on hosted platforms */ - LOG_WARNING("pipes not supported on this platform"); -#else - server_use_pipes = 1; -#endif + case 'p': + /* to replicate the old syntax this needs to be synchronous + * otherwise the gdb stdin will overflow with the warning message */ + command_run_line(cmd_ctx, "gdb_port pipe; log_output openocd.log"); + LOG_WARNING("deprecated option: -p/--pipe. Use '-c \"gdb_port pipe; log_output openocd.log\"' instead."); break; } } 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"); @@ -183,7 +196,6 @@ int parse_cmdline_args(struct command_context *cmd_ctx, int argc, char *argv[]) LOG_OUTPUT("--debug | -d\tset debug level <0-3>\n"); LOG_OUTPUT("--log_output | -l\tredirect log output to file \n"); LOG_OUTPUT("--command | -c\trun \n"); - LOG_OUTPUT("--pipe | -p\tuse pipes for gdb communication\n"); exit(-1); }