aboutsummaryrefslogtreecommitdiffstats
path: root/lib/Support/FileUtilities.cpp
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2004-12-15 01:46:54 +0000
committerReid Spencer <rspencer@reidspencer.com>2004-12-15 01:46:54 +0000
commit67f6d3ad30941e0ac6d36939c271eec7d7b8a0e2 (patch)
treed3d6c2d7fa947c959b0f09160a90176554e604a5 /lib/Support/FileUtilities.cpp
parentf9960f769ae574705b4dff4d6253285705a7012a (diff)
downloadexternal_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.cpp89
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;
}
-