diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2004-12-15 01:46:54 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2004-12-15 01:46:54 +0000 |
commit | 67f6d3ad30941e0ac6d36939c271eec7d7b8a0e2 (patch) | |
tree | d3d6c2d7fa947c959b0f09160a90176554e604a5 /lib/Support/FileUtilities.cpp | |
parent | f9960f769ae574705b4dff4d6253285705a7012a (diff) | |
download | external_llvm-67f6d3ad30941e0ac6d36939c271eec7d7b8a0e2.zip external_llvm-67f6d3ad30941e0ac6d36939c271eec7d7b8a0e2.tar.gz external_llvm-67f6d3ad30941e0ac6d36939c271eec7d7b8a0e2.tar.bz2 |
For PR351:
Remove getUniqueFilename and CopyFile. These are now implemented by
sys::Path::makeUnique and sys::CopyFile, respectively.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@18946 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Support/FileUtilities.cpp')
-rw-r--r-- | lib/Support/FileUtilities.cpp | 89 |
1 files changed, 1 insertions, 88 deletions
diff --git a/lib/Support/FileUtilities.cpp b/lib/Support/FileUtilities.cpp index 6cec414..b192466 100644 --- a/lib/Support/FileUtilities.cpp +++ b/lib/Support/FileUtilities.cpp @@ -13,18 +13,10 @@ //===----------------------------------------------------------------------===// #include "llvm/Support/FileUtilities.h" -#include "llvm/Support/DataTypes.h" #include "llvm/System/Path.h" -#include "llvm/Config/unistd.h" -#include "llvm/Config/fcntl.h" -#include "llvm/Config/sys/types.h" -#include "llvm/Config/sys/stat.h" -#include "llvm/Config/sys/mman.h" -#include "llvm/Config/alloca.h" -#include <cerrno> -#include <cstdio> #include <fstream> #include <iostream> + using namespace llvm; /// DiffFiles - Compare the two files specified, returning true if they are @@ -58,42 +50,6 @@ bool llvm::DiffFiles(const std::string &FileA, const std::string &FileB, return false; } - -/// CopyFile - Copy the specified source file to the specified destination, -/// overwriting destination if it exists. This returns true on failure. -/// -bool llvm::CopyFile(const std::string &Dest, const std::string &Src) { - FDHandle InFD(open(Src.c_str(), O_RDONLY)); - if (InFD == -1) return true; - - FileRemover FR(Dest); - - FDHandle OutFD(open(Dest.c_str(), O_WRONLY|O_CREAT, 0666)); - if (OutFD == -1) return true; - - char Buffer[16*1024]; - while (ssize_t Amt = read(InFD, Buffer, 16*1024)) { - if (Amt == -1) { - if (errno != EINTR) return true; // Error reading the file. - } else { - char *BufPtr = Buffer; - while (Amt) { - ssize_t AmtWritten = write(OutFD, BufPtr, Amt); - if (AmtWritten == -1) { - if (errno != EINTR) return true; // Error writing the file. - } else { - Amt -= AmtWritten; - BufPtr += AmtWritten; - } - } - } - } - - FR.releaseFile(); // Success! - return false; -} - - /// MoveFileOverIfUpdated - If the file specified by New is different than Old, /// or if Old does not exist, move the New file over the Old file. Otherwise, /// remove the New file. @@ -114,48 +70,6 @@ void llvm::removeFile(const std::string &Filename) { std::remove(Filename.c_str()); } -/// getUniqueFilename - Return a filename with the specified prefix. If the -/// file does not exist yet, return it, otherwise add a suffix to make it -/// unique. -/// -std::string llvm::getUniqueFilename(const std::string &FilenameBase) { - if (!std::ifstream(FilenameBase.c_str())) - return FilenameBase; // Couldn't open the file? Use it! - - // Create a pattern for mkstemp... - char *FNBuffer = new char[FilenameBase.size()+8]; - strcpy(FNBuffer, FilenameBase.c_str()); - strcpy(FNBuffer+FilenameBase.size(), "-XXXXXX"); - - // Agree on a temporary file name to use.... -#if defined(HAVE_MKSTEMP) && !defined(_MSC_VER) - int TempFD; - if ((TempFD = mkstemp(FNBuffer)) == -1) { - // FIXME: this should return an emtpy string or something and allow the - // caller to deal with the error! - std::cerr << "bugpoint: ERROR: Cannot create temporary file in the current " - << " directory!\n"; - exit(1); - } - - // We don't need to hold the temp file descriptor... we will trust that no one - // will overwrite/delete the file while we are working on it... - close(TempFD); -#else - // If we don't have mkstemp, use the old and obsolete mktemp function. - if (mktemp(FNBuffer) == 0) { - // FIXME: this should return an emtpy string or something and allow the - // caller to deal with the error! - std::cerr << "bugpoint: ERROR: Cannot create temporary file in the current " - << " directory!\n"; - exit(1); - } -#endif - - std::string Result(FNBuffer); - delete[] FNBuffer; - return Result; -} //===----------------------------------------------------------------------===// // FDHandle class implementation @@ -170,4 +84,3 @@ FDHandle &FDHandle::operator=(int fd) throw() { FD = fd; return *this; } - |