[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