On Sat, Nov 21, 2009 at 7:14 PM, Zach Welch <[email protected]> wrote:
> On Sat, 2009-11-21 at 16:53 +0100, Andreas Fritiofson wrote:
>> Add $HOME/.openocd as the first default script search directory, allowing
>> the user to override the standard scripts.
>
> Comments are in-line and at the end.
>
>> Signed-off-by: Andreas Fritiofson <[email protected]>
>> ---
>> src/helper/options.c | 16 +++++++++++++++-
>> 1 files changed, 15 insertions(+), 1 deletions(-)
>>
>> diff --git a/src/helper/options.c b/src/helper/options.c
>> index 5792e11..2187ff7 100644
>> --- a/src/helper/options.c
>> +++ b/src/helper/options.c
>> @@ -29,6 +29,7 @@
>> #include "server.h"
>>
>> #include <getopt.h>
>> +#include <stdlib.h>
>>
>> static int help_flag, version_flag;
>>
>> @@ -54,6 +55,10 @@ int configuration_output_handler(struct command_context
>> *context, const char* li
>>
>> static void add_default_dirs(void)
>> {
>> +#ifndef MAX_PATH
>> +#define MAX_PATH 1024
>> +#endif
>> +
>
> PATH_MAX should be defined and available (in <limits.h>). Use it.
I did some research on the matter, and it seems that PATH_MAX is only
defined if there actually is a limit, which apparently is not always
the case. Even if defined, the value is often arbitrary or unsuitably
large. So the #ifndef would have to stay, albeit with another name.
Since MAX_PATH was already used in the WIN32 specific section, I
decided to reuse that to avoid confusion with two different names.
Of course, should PATH_MAX be equally valid on WIN32 even though it's
an extension, that section could be changed to use it too if
available. I can verify if that's the case earliest on Monday, since I
have no Windows machine at home, and submit a clean-up patch after
that. In the meantime, this should work perfectly, even if users with
a >1K long home directory might be disappointed. :)
>
>> #ifdef _WIN32
>> /* Add the parent of the directory where openocd.exe resides to the
>> * config script search path.
>> @@ -101,7 +106,16 @@ 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").
>
> As the one who added that @todo item, thanks for doing this! :)
>
>> +
>> + char *home = getenv("HOME");
>> +
>> + if (home) {
>> + char path[MAX_PATH];
>> +
>> + if (snprintf(path, MAX_PATH, "%s/.openocd", home) < MAX_PATH)
>> + add_script_search_dir(path);
>> + }
>> +
>> add_script_search_dir(PKGDATADIR "/site");
>> add_script_search_dir(PKGDATADIR "/scripts");
>> #endif
>
> As others note, this deserves mention in doc/openocd.texi and NEWS.
>
I'll look into a patch for those soon-ish.
/Andreas
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development