diff options
author | Justus Winter <[email protected]> | 2017-03-21 14:52:47 +0000 |
---|---|---|
committer | Justus Winter <[email protected]> | 2017-03-21 14:52:47 +0000 |
commit | 8835ee681f5ae92ded982b51f5808935d227b126 (patch) | |
tree | f34365a5797557cd0bbfc156da11116f51fe92cf | |
parent | tests: Create temporary directories in '/tmp'. (diff) | |
download | libgpg-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.c | 19 | ||||
-rw-r--r-- | tests.scm | 2 |
2 files changed, 20 insertions, 1 deletions
@@ -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); @@ -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")) |