aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <[email protected]>2017-07-18 14:15:45 +0000
committerJustus Winter <[email protected]>2017-07-18 14:15:45 +0000
commit2e1342b78b020f5b28359b08a4f63cf11479602f (patch)
treeb58dcf8a7a857fb6371d081e81f9ec12bf9675b6
parentdirmngr: Honor http keyserver URLs. (diff)
downloadgnupg-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.c17
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)