From: Reid Spencer Date: Wed, 15 Dec 2004 01:46:54 +0000 (+0000) Subject: For PR351: X-Git-Url: http://plrg.eecs.uci.edu/git/?p=oota-llvm.git;a=commitdiff_plain;h=67f6d3ad30941e0ac6d36939c271eec7d7b8a0e2 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 --- diff --git a/include/llvm/Support/FileUtilities.h b/include/llvm/Support/FileUtilities.h index 36de66fcfdb..c594ac9899c 100644 --- a/include/llvm/Support/FileUtilities.h +++ b/include/llvm/Support/FileUtilities.h @@ -28,11 +28,6 @@ namespace llvm { bool DiffFiles(const std::string &FileA, const std::string &FileB, std::string *Error = 0); -/// CopyFile - Copy the specified source file to the specified destination, -/// overwriting destination if it exists. This returns true on failure. -/// -bool CopyFile(const std::string &Dest, const std::string &Src); - /// 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. @@ -43,12 +38,6 @@ void MoveFileOverIfUpdated(const std::string &New, const std::string &Old); /// void removeFile(const std::string &Filename); -/// 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 getUniqueFilename(const std::string &FilenameBase); - /// FDHandle - Simple handle class to make sure a file descriptor gets closed /// when the object is destroyed. This handle acts similarly to an /// std::auto_ptr, in that the copy constructor and assignment operators diff --git a/lib/Support/FileUtilities.cpp b/lib/Support/FileUtilities.cpp index 6cec414ee1a..b1924662e43 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 -#include #include #include + 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; } -