summaryrefslogtreecommitdiffstats
path: root/windows.c
diff options
context:
space:
mode:
authorGravatar Lubomir I. Ivanov <neolit123@gmail.com>2014-11-13 19:36:08 +0200
committerGravatar Dirk Hohndel <dirk@hohndel.org>2014-11-13 11:58:59 -0800
commit4096383fb57ab33e9adc32a13f20b7a58a2c33c7 (patch)
treef6c1a20f0ea269256a0124955487b911dae6b583 /windows.c
parent61dc19d2e0bc69004b03a990993eda547f4e0093 (diff)
downloadsubsurface-4096383fb57ab33e9adc32a13f20b7a58a2c33c7.tar.gz
Add subsurface_access()
For our usage the method will acept UTF-8 paths, which are converted to UTF-16 on Win32. Signed-off-by: Lubomir I. Ivanov <neolit123@gmail.com> Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
Diffstat (limited to 'windows.c')
-rw-r--r--windows.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/windows.c b/windows.c
index 386b52eb1..02b396f76 100644
--- a/windows.c
+++ b/windows.c
@@ -1,5 +1,6 @@
/* windows.c */
/* implements Windows specific functions */
+#include <io.h>
#include "dive.h"
#include "display.h"
#undef _WIN32_WINNT
@@ -235,6 +236,18 @@ void *subsurface_opendir(const char *path)
return (void *)ret;
}
+int subsurface_access(const char *path, int mode)
+{
+ int ret = -1;
+ if (!path)
+ return ret;
+ wchar_t *wpath = utf8_to_utf16(path);
+ if (wpath)
+ ret = _waccess(wpath, mode);
+ free((void *)wpath);
+ return ret;
+}
+
#ifndef O_BINARY
#define O_BINARY 0
#endif