diff options
| author | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-12-08 09:19:59 +0900 |
|---|---|---|
| committer | Yukihiro "Matz" Matsumoto <[email protected]> | 2017-12-08 09:19:59 +0900 |
| commit | 9df7bceb156d9eb5262fc742fa83f025f64b9d09 (patch) | |
| tree | 9e82ba8ff6e9cd8543b1d9c0c4613759ea70dbc5 | |
| parent | b724e06cf25eee4c05dcc0e3a1a65bb608091cc4 (diff) | |
| download | mruby-9df7bceb156d9eb5262fc742fa83f025f64b9d09.tar.gz mruby-9df7bceb156d9eb5262fc742fa83f025f64b9d09.zip | |
AppVeyor compiler does not proved some POSIX functions.
- `mode_t` by `int`
- `umask` by `_umask`
- `rmdir` by `_rmdir`
- `mkstemp` and `mkdtemp` by using `_mktemp`
| -rw-r--r-- | mrbgems/mruby-io/test/mruby_io_test.c | 42 |
1 files changed, 40 insertions, 2 deletions
diff --git a/mrbgems/mruby-io/test/mruby_io_test.c b/mrbgems/mruby-io/test/mruby_io_test.c index ffaa27ff4..35dce463e 100644 --- a/mrbgems/mruby-io/test/mruby_io_test.c +++ b/mrbgems/mruby-io/test/mruby_io_test.c @@ -2,8 +2,46 @@ #include <errno.h> #if defined(_WIN32) || defined(_WIN64) - #include <winsock.h> - #include <io.h> + +#include <winsock.h> +#include <io.h> +#include <direct.h> +#include <string.h> +#include <stdlib.h> +#include <malloc.h> + +typedef int mode_t; + +static int +mkstemp(char *p) +{ + char *template, *path; + char *path; + int fd; + + template = strdup(p); + if (template == NULL) return -1; + path = _mktemp(template); + if (path[0] == 0) { + free(path); + return -1; + } + fd = _open(path, _O_CREAT|_O_BINARY|_O_RDWR|_O_TEMPORARY); + free(path); + return fd; +} + +static char* +mkdtemp(char *template) +{ + char *path = _mktemp(template); + if (path[0] == 0) return NULL; + if (_mkdir(path) < 0) return NULL; + return path; +} + +#define umask(mode) _umask(mode) +#define rmdir(path) _rmdir(path) #else #include <sys/socket.h> #include <unistd.h> |
