[llvm-commits] CVS: llvm/lib/Support/FileUtilities.cpp

Reid Spencer reid at x10sys.com
Tue Dec 14 17:47:06 PST 2004



Changes in directory llvm/lib/Support:

FileUtilities.cpp updated: 1.31 -> 1.32
---
Log message:

For PR351: http://llvm.cs.uiuc.edu/PR351 :
Remove getUniqueFilename and CopyFile. These are now implemented by 
sys::Path::makeUnique and sys::CopyFile, respectively. 


---
Diffs of the changes:  (+1 -88)

Index: llvm/lib/Support/FileUtilities.cpp
diff -u llvm/lib/Support/FileUtilities.cpp:1.31 llvm/lib/Support/FileUtilities.cpp:1.32
--- llvm/lib/Support/FileUtilities.cpp:1.31	Mon Dec 13 14:08:14 2004
+++ llvm/lib/Support/FileUtilities.cpp	Tue Dec 14 19:46:54 2004
@@ -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 @@
   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 @@
   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 @@
   FD = fd;
   return *this;
 }
-






More information about the llvm-commits mailing list