diff options
Diffstat (limited to 'ports/leveldb/msvc_code_fix.diff')
| -rw-r--r-- | ports/leveldb/msvc_code_fix.diff | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/ports/leveldb/msvc_code_fix.diff b/ports/leveldb/msvc_code_fix.diff new file mode 100644 index 000000000..6cab006d3 --- /dev/null +++ b/ports/leveldb/msvc_code_fix.diff @@ -0,0 +1,63 @@ + db/c.cc | 2 ++ + port/port_win.h | 7 +++++++ + util/env_win.cc | 6 ++++-- + 3 files changed, 13 insertions(+), 2 deletions(-) + +diff --git a/db/c.cc b/db/c.cc +index 08ff0ad..b23e3dc 100644 +--- a/db/c.cc ++++ b/db/c.cc +@@ -5,7 +5,9 @@ + #include "leveldb/c.h" + + #include <stdlib.h> ++#ifndef WIN32 + #include <unistd.h> ++#endif + #include "leveldb/cache.h" + #include "leveldb/comparator.h" + #include "leveldb/db.h" +diff --git a/port/port_win.h b/port/port_win.h +index e8bf46e..989c15c 100644 +--- a/port/port_win.h ++++ b/port/port_win.h +@@ -32,9 +32,16 @@ + #define STORAGE_LEVELDB_PORT_PORT_WIN_H_ + + #ifdef _MSC_VER ++#if !(_MSC_VER >= 1900) + #define snprintf _snprintf ++#endif + #define close _close + #define fread_unlocked _fread_nolock ++#ifdef _WIN64 ++#define ssize_t int64_t ++#else ++#define ssize_t int32_t ++#endif + #endif + + #include <string> +diff --git a/util/env_win.cc b/util/env_win.cc +index d32c4e6..3b4c92b 100644 +--- a/util/env_win.cc ++++ b/util/env_win.cc +@@ -761,14 +761,16 @@ uint64_t Win32Env::NowMicros() + static Status CreateDirInner( const std::string& dirname ) + { + Status sRet; +- DWORD attr = ::GetFileAttributes(dirname.c_str()); ++ std::wstring dirnameW; ++ ToWidePath(dirname, dirnameW); ++ DWORD attr = ::GetFileAttributesW(dirnameW.c_str()); + if (attr == INVALID_FILE_ATTRIBUTES) { // doesn't exist: + std::size_t slash = dirname.find_last_of("\\"); + if (slash != std::string::npos){ + sRet = CreateDirInner(dirname.substr(0, slash)); + if (!sRet.ok()) return sRet; + } +- BOOL result = ::CreateDirectory(dirname.c_str(), NULL); ++ BOOL result = ::CreateDirectoryW(dirnameW.c_str(), NULL); + if (result == FALSE) { + sRet = Status::IOError(dirname, "Could not create directory."); + return sRet; |
