diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/fs/FileSystem.hxx | 16 | ||||
-rw-r--r-- | src/fs/Traits.hxx | 5 |
2 files changed, 21 insertions, 0 deletions
diff --git a/src/fs/FileSystem.hxx b/src/fs/FileSystem.hxx index ac4e0998d..a6240bf0e 100644 --- a/src/fs/FileSystem.hxx +++ b/src/fs/FileSystem.hxx @@ -55,7 +55,11 @@ namespace FOpenMode { static inline FILE * FOpen(Path file, PathTraitsFS::const_pointer mode) { +#ifdef WIN32 + return _tfopen(file.c_str(), mode); +#else return fopen(file.c_str(), mode); +#endif } /** @@ -64,7 +68,11 @@ FOpen(Path file, PathTraitsFS::const_pointer mode) static inline int OpenFile(Path file, int flags, int mode) { +#ifdef WIN32 + return _topen(file.c_str(), flags, mode); +#else return open_cloexec(file.c_str(), flags, mode); +#endif } /** @@ -73,7 +81,11 @@ OpenFile(Path file, int flags, int mode) static inline bool RenameFile(Path oldpath, Path newpath) { +#ifdef WIN32 + return _trename(oldpath.c_str(), newpath.c_str()) == 0; +#else return rename(oldpath.c_str(), newpath.c_str()) == 0; +#endif } #ifndef WIN32 @@ -98,7 +110,11 @@ StatFile(Path file, struct stat &buf, bool follow_symlinks = true) static inline bool RemoveFile(Path file) { +#ifdef WIN32 + return _tunlink(file.c_str()) == 0; +#else return unlink(file.c_str()) == 0; +#endif } /** diff --git a/src/fs/Traits.hxx b/src/fs/Traits.hxx index b557dd752..cdd9b531d 100644 --- a/src/fs/Traits.hxx +++ b/src/fs/Traits.hxx @@ -26,13 +26,18 @@ #ifdef WIN32 #include "util/CharUtil.hxx" +#include <tchar.h> #endif #include <string> #include <assert.h> +#ifdef WIN32 +#define PATH_LITERAL(s) _T(s) +#else #define PATH_LITERAL(s) (s) +#endif /** * This class describes the nature of a native filesystem path. |