Remove sys::CopyFile.

llvm-svn: 183831
This commit is contained in:
Rafael Espindola 2013-06-12 14:16:52 +00:00
parent 7e79636e19
commit ec4f0fc7c1
3 changed files with 0 additions and 64 deletions

View File

@ -592,12 +592,6 @@ namespace sys {
/// @}
};
/// This function can be used to copy the file specified by Src to the
/// file specified by Dest. If an error occurs, Dest is removed.
/// @returns true if an error occurs, false otherwise
/// @brief Copy one file to another.
bool CopyFile(const Path& Dest, const Path& Src, std::string* ErrMsg);
/// This is the OS-specific path separator: a colon on Unix or a semicolon
/// on Windows.
extern const char PathSeparator;

View File

@ -666,53 +666,6 @@ Path::setStatusInfoOnDisk(const FileStatus &si, std::string *ErrStr) const {
return false;
}
bool
sys::CopyFile(const sys::Path &Dest, const sys::Path &Src, std::string* ErrMsg){
int inFile = -1;
int outFile = -1;
inFile = ::open(Src.c_str(), O_RDONLY);
if (inFile == -1)
return MakeErrMsg(ErrMsg, Src.str() +
": can't open source file to copy");
outFile = ::open(Dest.c_str(), O_WRONLY|O_CREAT, 0666);
if (outFile == -1) {
::close(inFile);
return MakeErrMsg(ErrMsg, Dest.str() +
": can't create destination file for copy");
}
char Buffer[16*1024];
while (ssize_t Amt = ::read(inFile, Buffer, 16*1024)) {
if (Amt == -1) {
if (errno != EINTR && errno != EAGAIN) {
::close(inFile);
::close(outFile);
return MakeErrMsg(ErrMsg, Src.str()+": can't read source file");
}
} else {
char *BufPtr = Buffer;
while (Amt) {
ssize_t AmtWritten = ::write(outFile, BufPtr, Amt);
if (AmtWritten == -1) {
if (errno != EINTR && errno != EAGAIN) {
::close(inFile);
::close(outFile);
return MakeErrMsg(ErrMsg, Dest.str() +
": can't write destination file");
}
} else {
Amt -= AmtWritten;
BufPtr += AmtWritten;
}
}
}
}
::close(inFile);
::close(outFile);
return false;
}
bool
Path::makeUnique(bool reuse_current, std::string* ErrMsg) {
bool Exists;

View File

@ -21,7 +21,6 @@
#include <malloc.h>
// We need to undo a macro defined in Windows.h, otherwise we won't compile:
#undef CopyFile
#undef GetCurrentDirectory
// Windows happily accepts either forward or backward slashes, though any path
@ -730,16 +729,6 @@ Path::setStatusInfoOnDisk(const FileStatus &si, std::string *ErrMsg) const {
return false;
}
bool
CopyFile(const sys::Path &Dest, const sys::Path &Src, std::string* ErrMsg) {
// Can't use CopyFile macro defined in Windows.h because it would mess up the
// above line. We use the expansion it would have in a non-UNICODE build.
if (!::CopyFileA(Src.c_str(), Dest.c_str(), false))
return MakeErrMsg(ErrMsg, "Can't copy '" + Src.str() +
"' to '" + Dest.str() + "': ");
return false;
}
bool
Path::makeUnique(bool reuse_current, std::string* ErrMsg) {
bool Exists;