While creating temp. file on disk, if the current filename points to a existing direc...
authorDevang Patel <dpatel@apple.com>
Tue, 22 Jul 2008 20:02:39 +0000 (20:02 +0000)
committerDevang Patel <dpatel@apple.com>
Tue, 22 Jul 2008 20:02:39 +0000 (20:02 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@53929 91177308-0d34-0410-b5e6-96231b3b80d8

lib/System/Unix/Path.inc

index 1de594b86647c4f840c06e71b528bf9b987e5617..a0def8d5125ad7269d5fc2891a0678e2e3ca18e5 100644 (file)
@@ -746,8 +746,14 @@ Path::makeUnique(bool reuse_current, std::string* ErrMsg) {
   // Append an XXXXXX pattern to the end of the file for use with mkstemp, 
   // mktemp or our own implementation.
   char *FNBuffer = (char*) alloca(path.size()+8);
-  path.copy(FNBuffer,path.size());
-  strcpy(FNBuffer+path.size(), "-XXXXXX");
+  if (isDirectory()) {
+    std::string dirPath = getDirname();
+    strcpy(FNBuffer, dirPath.c_str());
+    strcpy(FNBuffer+dirPath.size(), "XXXXXX");
+  } else {
+    path.copy(FNBuffer,path.size());
+    strcpy(FNBuffer+path.size(), "-XXXXXX");
+  }
 
 #if defined(HAVE_MKSTEMP)
   int TempFD;