From 88aee448b1c2ea3d91cea1632e4ec980c8cdf774 Mon Sep 17 00:00:00 2001 From: Kelvin Sherlock Date: Fri, 28 Jul 2017 10:04:45 -0400 Subject: [PATCH] compile with msvc. --- CMakeLists.txt | 6 +++++- src/finder_info.cpp | 16 ++++++++-------- src/resource_fork.cpp | 13 +++++++------ 3 files changed, 20 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 66c2a14..5b5703b 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -10,9 +10,13 @@ if (WIN32 OR CYGWIN OR MSYS OR MINGW) if (NOT MSVC) set(REMAP src/remap_os_error.c) endif() +else() + set(XATTR srx/xattr.c) endif() -add_library(afp src/finder_info.cpp src/resource_fork.cpp src/xattr.c ${REMAP}) + + +add_library(afp src/finder_info.cpp src/resource_fork.cpp ${XATTR} ${REMAP}) target_include_directories(afp INTERFACE ${CMAKE_CURRENT_SOURCE_DIR}/include/) target_include_directories(afp PRIVATE ${CMAKE_CURRENT_SOURCE_DIR}/include/afp) diff --git a/src/finder_info.cpp b/src/finder_info.cpp index fbeb456..1540555 100644 --- a/src/finder_info.cpp +++ b/src/finder_info.cpp @@ -1,5 +1,4 @@ #include "finder_info.h" -#include "xattr.h" #include #include @@ -21,6 +20,7 @@ #include #include #include +#include "xattr.h" #endif #if defined(__APPLE__) @@ -61,7 +61,7 @@ namespace { #if defined(_WIN32) -#ifdef MSVC +#ifdef _MSC_VER #define AFP_ERROR_FILE_NOT_FOUND ERROR_FILE_NOT_FOUND #define remap_os_error(x) x #else @@ -79,14 +79,14 @@ extern "C" int remap_os_error(unsigned long); ec = std::error_code(remap_os_error(GetLastError()), std::system_category()); return x; } - +#undef CreateFile template - HANDLE CreateFileX(const std::string &s, Args... args) { + HANDLE CreateFile(const std::string &s, Args... args) { return CreateFileA(s.c_str(), std::forward(args)...); } template - HANDLE CreateFileX(const std::wstring &s, Args... args) { + HANDLE CreateFile(const std::wstring &s, Args... args) { return CreateFileW(s.c_str(), std::forward(args)...); } @@ -111,7 +111,7 @@ extern "C" int remap_os_error(unsigned long); break; } - return _(CreateFileX(s, access, FILE_SHARE_READ, nullptr, create, FILE_ATTRIBUTE_NORMAL, nullptr), ec); + return _(CreateFile(s, access, FILE_SHARE_READ, nullptr, create, FILE_ATTRIBUTE_NORMAL, nullptr), ec); } DWORD GetFileAttributesX(const std::string &path) { @@ -597,7 +597,7 @@ bool finder_info::write(const std::string &path, std::error_code &ec) { std::string s(path); s += ":" XATTR_FINDERINFO_NAME; - HANDLE h = _(CreateFileX(s, + HANDLE h = _(CreateFile(s, GENERIC_WRITE, FILE_SHARE_READ, nullptr, @@ -622,7 +622,7 @@ bool finder_info::write(const std::wstring &path, std::error_code &ec) { std::wstring s(path); s += L":" XATTR_FINDERINFO_NAME; - HANDLE h = _(CreateFileX(s, + HANDLE h = _(CreateFile(s, GENERIC_WRITE, FILE_SHARE_READ, nullptr, diff --git a/src/resource_fork.cpp b/src/resource_fork.cpp index 50fab39..97f4455 100644 --- a/src/resource_fork.cpp +++ b/src/resource_fork.cpp @@ -1,5 +1,4 @@ #include "resource_fork.h" -#include "xattr.h" #include @@ -19,6 +18,7 @@ #include #include #include +#include "xattr.h" #endif #ifdef __APPLE_ @@ -61,7 +61,7 @@ namespace { #if defined(_WIN32) -#ifdef MSVC +#ifdef _MSC_VER #define AFP_ERROR_FILE_NOT_FOUND ERROR_FILE_NOT_FOUND #define remap_os_error(x) x #else @@ -80,13 +80,14 @@ extern "C" int remap_os_error(unsigned long); return x; } +#undef CreateFile template - HANDLE CreateFileX(const std::string &s, Args... args) { + HANDLE CreateFile(const std::string &s, Args... args) { return CreateFileA(s.c_str(), std::forward(args)...); } template - HANDLE CreateFileX(const std::wstring &s, Args... args) { + HANDLE CreateFile(const std::wstring &s, Args... args) { return CreateFileW(s.c_str(), std::forward(args)...); } @@ -112,7 +113,7 @@ extern "C" int remap_os_error(unsigned long); break; } - HANDLE h = _(CreateFileX(s, access, FILE_SHARE_READ, nullptr, create, FILE_ATTRIBUTE_NORMAL, nullptr), ec); + HANDLE h = _(CreateFile(s, access, FILE_SHARE_READ, nullptr, create, FILE_ATTRIBUTE_NORMAL, nullptr), ec); return h; } @@ -280,7 +281,7 @@ namespace afp { LARGE_INTEGER ll = { }; BOOL ok = _(GetFileSizeEx(_fd, &ll), ec); if (ec) return 0; - return ll.QuadPart; + return static_cast(ll.QuadPart); } bool resource_fork::truncate(size_t pos, std::error_code &ec) {