diff options
author | Justus Winter <[email protected]> | 2017-07-18 14:15:45 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2017-07-18 14:15:45 +0000 |
commit | 2e1342b78b020f5b28359b08a4f63cf11479602f (patch) | |
tree | b58dcf8a7a857fb6371d081e81f9ec12bf9675b6 | |
parent | dirmngr: Honor http keyserver URLs. (diff) | |
download | gnupg-2e1342b78b020f5b28359b08a4f63cf11479602f.tar.gz gnupg-2e1342b78b020f5b28359b08a4f63cf11479602f.zip |
gpgscm,w32: Fix testing for absolute paths.
* tests/gpgscm/main.c (path_absolute_p): New function.
(load): Use new function.
Signed-off-by: Justus Winter <[email protected]>
Diffstat (limited to '')
-rw-r--r-- | tests/gpgscm/main.c | 17 |
1 files changed, 15 insertions, 2 deletions
diff --git a/tests/gpgscm/main.c b/tests/gpgscm/main.c index 4dae36587..5540ac365 100644 --- a/tests/gpgscm/main.c +++ b/tests/gpgscm/main.c @@ -124,6 +124,19 @@ my_strusage( int level ) } + +static int +path_absolute_p (const char *p) +{ +#if _WIN32 + return ((strlen (p) > 2 && p[1] == ':' && (p[2] == '\\' || p[2] == '/')) + || p[0] == '\\' || p[0] == '/'); +#else + return p[0] == '/'; +#endif +} + + /* Load the Scheme program from FILE_NAME. If FILE_NAME is not an absolute path, and LOOKUP_IN_PATH is given, then it is qualified with the values in scmpath until the file is found. */ @@ -139,9 +152,9 @@ load (scheme *sc, char *file_name, FILE *h = NULL; use_path = - lookup_in_path && ! (file_name[0] == '/' || scmpath_len == 0); + lookup_in_path && ! (path_absolute_p (file_name) || scmpath_len == 0); - if (file_name[0] == '/' || lookup_in_cwd || scmpath_len == 0) + if (path_absolute_p (file_name) || lookup_in_cwd || scmpath_len == 0) { h = fopen (file_name, "r"); if (! h) |