From 0aa8ce5c57b7f9c8fdb238dd31800afbd066bbda Mon Sep 17 00:00:00 2001 From: "Yukihiro \"Matz\" Matsumoto" Date: Thu, 22 Dec 2022 09:10:40 +0900 Subject: [PATCH] mruby-dir/dirtest.c: did not work for Windows --- mrbgems/mruby-dir/test/dirtest.c | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/mrbgems/mruby-dir/test/dirtest.c b/mrbgems/mruby-dir/test/dirtest.c index a169cbe2b..243cfaf7e 100644 --- a/mrbgems/mruby-dir/test/dirtest.c +++ b/mrbgems/mruby-dir/test/dirtest.c @@ -1,18 +1,25 @@ #include #include -#include #include - #include #include #include +#if defined(_WIN32) || defined(_WIN64) +#include "../src/Win/dirent.c" +#include +#define rmdir(path) _rmdir(path) +#define mkdir(path,mode) _mkdir(path) +#define chdir(path) _chdir(path) +#else +#include +#endif + #include "mruby.h" #include "mruby/string.h" #include "mruby/variable.h" - mrb_value mrb_dirtest_setup(mrb_state *mrb, mrb_value klass) { @@ -30,7 +37,7 @@ mrb_dirtest_setup(mrb_state *mrb, mrb_value klass) /* create sandbox */ #if defined(_WIN32) || defined(_WIN64) snprintf(buf, sizeof(buf), "%s\\mruby-dir-test.XXXXXX", _getcwd(NULL,0)); - if ((mktemp(buf) == NULL) || mkdir(buf) != 0) { + if ((mktemp(buf) == NULL) || mkdir(buf,0) != 0) { mrb_raisef(mrb, E_RUNTIME_ERROR, "mkdtemp(%S) failed", mrb_str_new_cstr(mrb, buf)); } #else @@ -49,20 +56,12 @@ mrb_dirtest_setup(mrb_state *mrb, mrb_value klass) } /* make some directories in the sandbox */ -#if defined(_WIN32) || defined(_WIN64) - if (mkdir(aname) == -1) { -#else if (mkdir(aname, 0) == -1) { -#endif chdir(".."); rmdir(buf); mrb_raisef(mrb, E_RUNTIME_ERROR, "mkdir(%S) failed", mrb_str_new_cstr(mrb, aname)); } -#if defined(_WIN32) || defined(_WIN64) - if (mkdir(bname) == -1) { -#else if (mkdir(bname, 0) == -1) { -#endif rmdir(aname); chdir(".."); rmdir(buf);