summaryrefslogtreecommitdiff
path: root/contrib/untar.c
diff options
context:
space:
mode:
Diffstat (limited to 'contrib/untar.c')
-rw-r--r--contrib/untar.c16
1 files changed, 14 insertions, 2 deletions
diff --git a/contrib/untar.c b/contrib/untar.c
index 3d954f63..34b06c7f 100644
--- a/contrib/untar.c
+++ b/contrib/untar.c
@@ -36,6 +36,10 @@
/* This is for mkdir(); this may need to be changed for some platforms. */
#include <sys/stat.h> /* For mkdir() */
+#if defined(_WIN32)
+#include <windows.h>
+#endif
+
/* Parse an octal number, ignoring leading and trailing nonsense. */
static int
parseoct(const char *p, size_t n)
@@ -78,7 +82,11 @@ create_dir(char *pathname, int mode)
pathname[strlen(pathname) - 1] = '\0';
/* Try creating the directory. */
- r = mkdir(pathname, mode);
+ #if defined(_WIN32)
+ r = _mkdir(pathname);
+ #else
+ r = mkdir(pathname, mode);
+ #endif
if (r != 0) {
/* On failure, try creating parent directory. */
@@ -87,7 +95,11 @@ create_dir(char *pathname, int mode)
*p = '\0';
create_dir(pathname, 0755);
*p = '/';
- r = mkdir(pathname, mode);
+ #if defined(_WIN32)
+ r = _mkdir(pathname);
+ #else
+ r = mkdir(pathname, mode);
+ #endif
}
}
if (r != 0)