forked from OSchip/llvm-project
parent
98aff88c9b
commit
63f13c4cbc
|
@ -308,7 +308,7 @@ static bool AddPermissionBits(const std::string& Filename, int bits) {
|
||||||
// the owner writable bit.
|
// the owner writable bit.
|
||||||
if ((attr & FILE_ATTRIBUTE_READONLY) && (bits & 0200)) {
|
if ((attr & FILE_ATTRIBUTE_READONLY) && (bits & 0200)) {
|
||||||
if (!SetFileAttributes(Filename.c_str(), attr & ~FILE_ATTRIBUTE_READONLY))
|
if (!SetFileAttributes(Filename.c_str(), attr & ~FILE_ATTRIBUTE_READONLY))
|
||||||
ThrowError(Filename + ": SetFileAttributes: ");
|
ThrowError(Filename + ": SetFileAttributes: ");
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -343,23 +343,23 @@ Path::getDirectoryContents(std::set<Path>& result) const {
|
||||||
WIN32_FIND_DATA fd;
|
WIN32_FIND_DATA fd;
|
||||||
HANDLE h = FindFirstFile(path.c_str(), &fd);
|
HANDLE h = FindFirstFile(path.c_str(), &fd);
|
||||||
if (h == INVALID_HANDLE_VALUE) {
|
if (h == INVALID_HANDLE_VALUE) {
|
||||||
if (GetLastError() == ERROR_NO_MORE_FILES)
|
if (GetLastError() == ERROR_NO_MORE_FILES)
|
||||||
return true; // not really an error, now is it?
|
return true; // not really an error, now is it?
|
||||||
ThrowError(path + ": Can't read directory: ");
|
ThrowError(path + ": Can't read directory: ");
|
||||||
}
|
}
|
||||||
|
|
||||||
do {
|
do {
|
||||||
if (fd.cFileName[0] == '.')
|
if (fd.cFileName[0] == '.')
|
||||||
continue;
|
continue;
|
||||||
Path aPath(path + &fd.cFileName[0]);
|
Path aPath(path + &fd.cFileName[0]);
|
||||||
if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
|
if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
|
||||||
aPath.path += "/";
|
aPath.path += "/";
|
||||||
result.insert(aPath);
|
result.insert(aPath);
|
||||||
} while (FindNextFile(h, &fd));
|
} while (FindNextFile(h, &fd));
|
||||||
|
|
||||||
CloseHandle(h);
|
CloseHandle(h);
|
||||||
if (GetLastError() != ERROR_NO_MORE_FILES)
|
if (GetLastError() != ERROR_NO_MORE_FILES)
|
||||||
ThrowError(path + ": Can't read directory: ");
|
ThrowError(path + ": Can't read directory: ");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -620,7 +620,7 @@ Path::renameFile(const Path& newName) {
|
||||||
if (!isFile()) return false;
|
if (!isFile()) return false;
|
||||||
if (!MoveFile(path.c_str(), newName.c_str()))
|
if (!MoveFile(path.c_str(), newName.c_str()))
|
||||||
ThrowError("Can't move '" + path +
|
ThrowError("Can't move '" + path +
|
||||||
"' to '" + newName.path + "': ");
|
"' to '" + newName.path + "': ");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -631,17 +631,17 @@ Path::setStatusInfo(const StatusInfo& si) const {
|
||||||
HANDLE h = CreateFile(path.c_str(),
|
HANDLE h = CreateFile(path.c_str(),
|
||||||
FILE_READ_ATTRIBUTES | FILE_WRITE_ATTRIBUTES,
|
FILE_READ_ATTRIBUTES | FILE_WRITE_ATTRIBUTES,
|
||||||
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
|
||||||
NULL,
|
NULL,
|
||||||
OPEN_EXISTING,
|
OPEN_EXISTING,
|
||||||
FILE_ATTRIBUTE_NORMAL,
|
FILE_ATTRIBUTE_NORMAL,
|
||||||
NULL);
|
NULL);
|
||||||
if (h == INVALID_HANDLE_VALUE)
|
if (h == INVALID_HANDLE_VALUE)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
BY_HANDLE_FILE_INFORMATION bhfi;
|
BY_HANDLE_FILE_INFORMATION bhfi;
|
||||||
if (!GetFileInformationByHandle(h, &bhfi)) {
|
if (!GetFileInformationByHandle(h, &bhfi)) {
|
||||||
CloseHandle(h);
|
CloseHandle(h);
|
||||||
ThrowError(path + ": GetFileInformationByHandle: ");
|
ThrowError(path + ": GetFileInformationByHandle: ");
|
||||||
}
|
}
|
||||||
|
|
||||||
FILETIME ft;
|
FILETIME ft;
|
||||||
|
@ -656,13 +656,13 @@ Path::setStatusInfo(const StatusInfo& si) const {
|
||||||
if (si.mode & 0200) {
|
if (si.mode & 0200) {
|
||||||
if (bhfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY) {
|
if (bhfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY) {
|
||||||
if (!SetFileAttributes(path.c_str(),
|
if (!SetFileAttributes(path.c_str(),
|
||||||
bhfi.dwFileAttributes & ~FILE_ATTRIBUTE_READONLY))
|
bhfi.dwFileAttributes & ~FILE_ATTRIBUTE_READONLY))
|
||||||
ThrowError(path + ": SetFileAttributes: ");
|
ThrowError(path + ": SetFileAttributes: ");
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
if (!(bhfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY)) {
|
if (!(bhfi.dwFileAttributes & FILE_ATTRIBUTE_READONLY)) {
|
||||||
if (!SetFileAttributes(path.c_str(),
|
if (!SetFileAttributes(path.c_str(),
|
||||||
bhfi.dwFileAttributes | FILE_ATTRIBUTE_READONLY))
|
bhfi.dwFileAttributes | FILE_ATTRIBUTE_READONLY))
|
||||||
ThrowError(path + ": SetFileAttributes: ");
|
ThrowError(path + ": SetFileAttributes: ");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -676,7 +676,7 @@ sys::CopyFile(const sys::Path &Dest, const sys::Path &Src) {
|
||||||
// above line. We use the expansion it would have in a non-UNICODE build.
|
// above line. We use the expansion it would have in a non-UNICODE build.
|
||||||
if (!::CopyFileA(Src.c_str(), Dest.c_str(), false))
|
if (!::CopyFileA(Src.c_str(), Dest.c_str(), false))
|
||||||
ThrowError("Can't copy '" + Src.toString() +
|
ThrowError("Can't copy '" + Src.toString() +
|
||||||
"' to '" + Dest.toString() + "': ");
|
"' to '" + Dest.toString() + "': ");
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
|
Loading…
Reference in New Issue