aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJustus Winter <[email protected]>2017-03-21 14:52:47 +0000
committerJustus Winter <[email protected]>2017-03-21 14:52:47 +0000
commit8835ee681f5ae92ded982b51f5808935d227b126 (patch)
treef34365a5797557cd0bbfc156da11116f51fe92cf
parenttests: Create temporary directories in '/tmp'. (diff)
downloadlibgpg-error-8835ee681f5ae92ded982b51f5808935d227b126.tar.gz
libgpg-error-8835ee681f5ae92ded982b51f5808935d227b126.zip
tests,w32: Use GetTempPath to get the path for temporary files.
* tests/gpgscm/ffi.c (do_get_temp_path): New function. (ffi_init): Make function available. * tests/gpgscm/tests.scm (mkdtemp): Use the new function. Fixes-commit: 06f1f163e96f1039304fd3cf565cf9de1ca45849 Signed-off-by: Justus Winter <[email protected]>
-rw-r--r--ffi.c19
-rw-r--r--tests.scm2
2 files changed, 20 insertions, 1 deletions
diff --git a/ffi.c b/ffi.c
index 34e573f..3af3328 100644
--- a/ffi.c
+++ b/ffi.c
@@ -342,6 +342,24 @@ do_seek (scheme *sc, pointer args)
}
static pointer
+do_get_temp_path (scheme *sc, pointer args)
+{
+ FFI_PROLOG ();
+#ifdef HAVE_W32_SYSTEM
+ char buffer[MAX_PATH+1];
+#endif
+ FFI_ARGS_DONE_OR_RETURN (sc, args);
+
+#ifdef HAVE_W32_SYSTEM
+ if (GetTempPath (MAX_PATH+1, buffer) == 0)
+ FFI_RETURN_STRING (sc, "/temp");
+ FFI_RETURN_STRING (sc, buffer);
+#else
+ FFI_RETURN_STRING (sc, "/tmp");
+#endif
+}
+
+static pointer
do_mkdtemp (scheme *sc, pointer args)
{
FFI_PROLOG ();
@@ -1352,6 +1370,7 @@ ffi_init (scheme *sc, const char *argv0, const char *scriptname,
ffi_define_function (sc, fdopen);
ffi_define_function (sc, close);
ffi_define_function (sc, seek);
+ ffi_define_function (sc, get_temp_path);
ffi_define_function_name (sc, "_mkdtemp", mkdtemp);
ffi_define_function (sc, unlink);
ffi_define_function (sc, unlink_recursively);
diff --git a/tests.scm b/tests.scm
index 329a31a..a4339ca 100644
--- a/tests.scm
+++ b/tests.scm
@@ -272,7 +272,7 @@
(define (mkdtemp . components)
(canonical-path (_mkdtemp (if (null? components)
(path-join
- (if *win32* (getenv "Temp") "/tmp")
+ (get-temp-path)
(string-append "gpgscm-" (get-isotime) "-"
(basename-suffix *scriptname* ".scm")
"-XXXXXX"))