Make Unix.h:MakeErrMsg separate the prefix and errno string, so we get:

  clang: error: unable to make temporary file: /etc/cc: can't make
  unique filename: Permission denied

instead of 

  clang: error: unable to make temporary file: /etc/cc: can't make
  unique filenamePermission denied

for example.

Also, audited the uses of MakeErrMsg to make the prefix strings
consistent (not end with newline/punctuation/space/": ").


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@69626 91177308-0d34-0410-b5e6-96231b3b80d8
diff --git a/lib/System/Unix/Memory.inc b/lib/System/Unix/Memory.inc
index cfc5a68..b7a7013 100644
--- a/lib/System/Unix/Memory.inc
+++ b/lib/System/Unix/Memory.inc
@@ -76,7 +76,7 @@
                                 (vm_size_t)(pageSize*NumPages), 0,
                                 VM_PROT_READ | VM_PROT_EXECUTE | VM_PROT_COPY);
   if (KERN_SUCCESS != kr) {
-    MakeErrMsg(ErrMsg, "vm_protect max RX failed\n");
+    MakeErrMsg(ErrMsg, "vm_protect max RX failed");
     return sys::MemoryBlock();
   }
 
@@ -84,7 +84,7 @@
                   (vm_size_t)(pageSize*NumPages), 0,
                   VM_PROT_READ | VM_PROT_WRITE);
   if (KERN_SUCCESS != kr) {
-    MakeErrMsg(ErrMsg, "vm_protect RW failed\n");
+    MakeErrMsg(ErrMsg, "vm_protect RW failed");
     return sys::MemoryBlock();
   }
 #endif
diff --git a/lib/System/Unix/Path.inc b/lib/System/Unix/Path.inc
index 4a6b505..6bcb00f 100644
--- a/lib/System/Unix/Path.inc
+++ b/lib/System/Unix/Path.inc
@@ -748,7 +748,7 @@
 Path::renamePathOnDisk(const Path& newName, std::string* ErrMsg) {
   if (0 != ::rename(path.c_str(), newName.c_str()))
     return MakeErrMsg(ErrMsg, std::string("can't rename '") + path + "' as '" +
-               newName.toString() + "' ");
+               newName.toString() + "'");
   return false;
 }
 
@@ -786,7 +786,7 @@
       if (errno != EINTR && errno != EAGAIN) {
         ::close(inFile);
         ::close(outFile);
-        return MakeErrMsg(ErrMsg, Src.toString()+": can't read source file: ");
+        return MakeErrMsg(ErrMsg, Src.toString()+": can't read source file");
       }
     } else {
       char *BufPtr = Buffer;
@@ -797,7 +797,7 @@
             ::close(inFile);
             ::close(outFile);
             return MakeErrMsg(ErrMsg, Dest.toString() +
-              ": can't write destination file: ");
+              ": can't write destination file");
           }
         } else {
           Amt -= AmtWritten;
diff --git a/lib/System/Unix/Program.inc b/lib/System/Unix/Program.inc
index 2426900..cdc6fee 100644
--- a/lib/System/Unix/Program.inc
+++ b/lib/System/Unix/Program.inc
@@ -99,7 +99,7 @@
   int InFD = open(File.c_str(), FD == 0 ? O_RDONLY : O_WRONLY|O_CREAT, 0666);
   if (InFD == -1) {
     MakeErrMsg(ErrMsg, "Cannot open file '" + File + "' for "
-              + (FD == 0 ? "input" : "output") + "!\n");
+              + (FD == 0 ? "input" : "output"));
     return true;
   }
 
diff --git a/lib/System/Unix/Unix.h b/lib/System/Unix/Unix.h
index b2c3160..452226f 100644
--- a/lib/System/Unix/Unix.h
+++ b/lib/System/Unix/Unix.h
@@ -70,6 +70,9 @@
 /// string and the Unix error number given by \p errnum. If errnum is -1, the
 /// default then the value of errno is used.
 /// @brief Make an error message
+///
+/// If the error number can be converted to a string, it will be
+/// separated from prefix by ": ".
 static inline bool MakeErrMsg(
   std::string* ErrMsg, const std::string& prefix, int errnum = -1) {
   if (!ErrMsg)
@@ -94,7 +97,7 @@
   // but, oh well, just use a generic message
   sprintf(buffer, "Error #%d", errnum);
 #endif
-  *ErrMsg = prefix + buffer;
+  *ErrMsg = prefix + ": " + buffer;
   return true;
 }