For PR351:
authorReid Spencer <rspencer@reidspencer.com>
Wed, 15 Dec 2004 01:46:54 +0000 (01:46 +0000)
committerReid Spencer <rspencer@reidspencer.com>
Wed, 15 Dec 2004 01:46:54 +0000 (01:46 +0000)
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

include/llvm/Support/FileUtilities.h
lib/Support/FileUtilities.cpp

index 36de66fcfdbe3568e0a4f1d38ac5769b72650a52..c594ac9899c975570f4f2b1786c6d8b107cfc28d 100644 (file)
@@ -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
index 6cec414ee1aa881657aa57c903dec06003dbdc8a..b1924662e4305317229dbef1d5df83f46c52a580 100644 (file)
 //===----------------------------------------------------------------------===//
 
 #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;
 }
-