using llvm::sys::windows::UTF16ToUTF8;
using llvm::sys::path::widenPath;
-static std::error_code windows_error(DWORD E) {
- return mapWindowsError(E);
-}
-
static bool is_separator(const wchar_t value) {
switch (value) {
case L'\\':
else {
CurPathLen = ::GetCurrentDirectoryW(0, NULL);
if (CurPathLen == 0)
- return windows_error(::GetLastError());
+ return mapWindowsError(::GetLastError());
}
// Would the absolute path be longer than our limit?
// A zero return value indicates a failure other than insufficient space.
if (len == 0)
- return windows_error(::GetLastError());
+ return mapWindowsError(::GetLastError());
// If there's insufficient space, the len returned is larger than the len
// given.
if (!::CreateDirectoryW(path_utf16.begin(), NULL)) {
DWORD LastError = ::GetLastError();
if (LastError != ERROR_ALREADY_EXISTS || !IgnoreExisting)
- return windows_error(LastError);
+ return mapWindowsError(LastError);
}
return std::error_code();
return ec;
if (!::CreateHardLinkW(wide_from.begin(), wide_to.begin(), NULL))
- return windows_error(::GetLastError());
+ return mapWindowsError(::GetLastError());
return std::error_code();
}
if (ST.type() == file_type::directory_file) {
if (!::RemoveDirectoryW(c_str(path_utf16))) {
- std::error_code EC = windows_error(::GetLastError());
+ std::error_code EC = mapWindowsError(::GetLastError());
if (EC != errc::no_such_file_or_directory || !IgnoreNonExisting)
return EC;
}
return std::error_code();
}
if (!::DeleteFileW(c_str(path_utf16))) {
- std::error_code EC = windows_error(::GetLastError());
+ std::error_code EC = mapWindowsError(::GetLastError());
if (EC != errc::no_such_file_or_directory || !IgnoreNonExisting)
return EC;
}
MOVEFILE_COPY_ALLOWED | MOVEFILE_REPLACE_EXISTING))
return std::error_code();
DWORD LastError = ::GetLastError();
- ec = windows_error(LastError);
+ ec = mapWindowsError(LastError);
if (LastError != ERROR_ACCESS_DENIED)
break;
// Retry MoveFile() at ACCESS_DENIED.
DWORD LastError = ::GetLastError();
if (LastError != ERROR_FILE_NOT_FOUND &&
LastError != ERROR_PATH_NOT_FOUND)
- return windows_error(LastError);
+ return mapWindowsError(LastError);
return errc::no_such_file_or_directory;
}
case FILE_TYPE_UNKNOWN: {
DWORD Err = ::GetLastError();
if (Err != NO_ERROR)
- return windows_error(Err);
+ return mapWindowsError(Err);
Result = file_status(file_type::type_unknown);
return std::error_code();
}
Result = file_status(file_type::type_unknown);
else
Result = file_status(file_type::status_error);
- return windows_error(LastError);
+ return mapWindowsError(LastError);
}
std::error_code status(const Twine &path, file_status &result) {
FT.dwHighDateTime = UI.HighPart;
HANDLE FileHandle = reinterpret_cast<HANDLE>(_get_osfhandle(FD));
if (!SetFileTime(FileHandle, NULL, &FT, &FT))
- return windows_error(::GetLastError());
+ return mapWindowsError(::GetLastError());
return std::error_code();
}
(Offset + Size) & 0xffffffff,
0);
if (FileMappingHandle == NULL) {
- std::error_code ec = windows_error(GetLastError());
+ std::error_code ec = mapWindowsError(GetLastError());
return ec;
}
Offset & 0xffffffff,
Size);
if (Mapping == NULL) {
- std::error_code ec = windows_error(GetLastError());
+ std::error_code ec = mapWindowsError(GetLastError());
::CloseHandle(FileMappingHandle);
return ec;
}
MEMORY_BASIC_INFORMATION mbi;
SIZE_T Result = VirtualQuery(Mapping, &mbi, sizeof(mbi));
if (Result == 0) {
- std::error_code ec = windows_error(GetLastError());
+ std::error_code ec = mapWindowsError(GetLastError());
::UnmapViewOfFile(Mapping);
::CloseHandle(FileMappingHandle);
return ec;
WIN32_FIND_DATAW FirstFind;
ScopedFindHandle FindHandle(::FindFirstFileW(c_str(path_utf16), &FirstFind));
if (!FindHandle)
- return windows_error(::GetLastError());
+ return mapWindowsError(::GetLastError());
size_t FilenameLen = ::wcslen(FirstFind.cFileName);
while ((FilenameLen == 1 && FirstFind.cFileName[0] == L'.') ||
// Check for end.
if (LastError == ERROR_NO_MORE_FILES)
return detail::directory_iterator_destruct(it);
- return windows_error(LastError);
+ return mapWindowsError(LastError);
} else
FilenameLen = ::wcslen(FirstFind.cFileName);
// Check for end.
if (LastError == ERROR_NO_MORE_FILES)
return detail::directory_iterator_destruct(it);
- return windows_error(LastError);
+ return mapWindowsError(LastError);
}
size_t FilenameLen = ::wcslen(FindData.cFileName);
OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if (H == INVALID_HANDLE_VALUE) {
DWORD LastError = ::GetLastError();
- std::error_code EC = windows_error(LastError);
+ std::error_code EC = mapWindowsError(LastError);
// Provide a better error message when trying to open directories.
// This only runs if we failed to open the file, so there is probably
// no performances issues.
int FD = ::_open_osfhandle(intptr_t(H), 0);
if (FD == -1) {
::CloseHandle(H);
- return windows_error(ERROR_INVALID_HANDLE);
+ return mapWindowsError(ERROR_INVALID_HANDLE);
}
ResultFD = FD;
if (H == INVALID_HANDLE_VALUE) {
DWORD LastError = ::GetLastError();
- std::error_code EC = windows_error(LastError);
+ std::error_code EC = mapWindowsError(LastError);
// Provide a better error message when trying to open directories.
// This only runs if we failed to open the file, so there is probably
// no performances issues.
int FD = ::_open_osfhandle(intptr_t(H), OpenFlags);
if (FD == -1) {
::CloseHandle(H);
- return windows_error(ERROR_INVALID_HANDLE);
+ return mapWindowsError(ERROR_INVALID_HANDLE);
}
ResultFD = FD;
utf8.size(), utf16.begin(), 0);
if (len == 0)
- return windows_error(::GetLastError());
+ return mapWindowsError(::GetLastError());
utf16.reserve(len + 1);
utf16.set_size(len);
utf8.size(), utf16.begin(), utf16.size());
if (len == 0)
- return windows_error(::GetLastError());
+ return mapWindowsError(::GetLastError());
}
// Make utf16 null terminated.
0, NULL, NULL);
if (len == 0)
- return windows_error(::GetLastError());
+ return mapWindowsError(::GetLastError());
utf8.reserve(len);
utf8.set_size(len);
utf8.size(), NULL, NULL);
if (len == 0)
- return windows_error(::GetLastError());
+ return mapWindowsError(::GetLastError());
}
// Make utf8 null terminated.