mharris 0d9e8f6
--- dos2unix-3.1/dos2unix.c.mode	2003-05-21 08:09:08.000000000 -0700
mharris 0d9e8f6
+++ dos2unix-3.1/dos2unix.c	2003-05-21 08:09:56.000000000 -0700
mharris 0d9e8f6
@@ -345,11 +345,14 @@ int ConvertDosToUnixOldFile(char* ipInFN
mharris 0d9e8f6
   char TempPath[16];
mharris 0d9e8f6
   struct stat StatBuf;
mharris 0d9e8f6
   struct utimbuf UTimeBuf;
mharris 0d9e8f6
+  mode_t mode = S_IRUSR | S_IWUSR;
mharris 0d9e8f6
   int fd;
mharris 0d9e8f6
 
mharris 0d9e8f6
   /* retrieve ipInFN file date stamp */
mharris 0d9e8f6
-  if ((ipFlag->KeepDate) && stat(ipInFN, &StatBuf))
mharris 0d9e8f6
+  if (stat(ipInFN, &StatBuf))
mharris 0d9e8f6
     RetVal = -1;
mharris 0d9e8f6
+  else
mharris 0d9e8f6
+    mode = StatBuf.st_mode;
mharris 0d9e8f6
 
mharris 0d9e8f6
   strcpy (TempPath, "./u2dtmpXXXXXX");
mharris 0d9e8f6
   if((fd=mkstemp (TempPath))<0) {
mharris 0d9e8f6
@@ -357,6 +360,9 @@ int ConvertDosToUnixOldFile(char* ipInFN
mharris 0d9e8f6
 	  RetVal = -1;
mharris 0d9e8f6
   }
mharris 0d9e8f6
 
mharris 0d9e8f6
+  if (!RetVal && fchmod (fd, mode) && fchmod (fd, S_IRUSR | S_IWUSR))
mharris 0d9e8f6
+    RetVal = -1;
mharris 0d9e8f6
+
mharris 0d9e8f6
 #ifdef DEBUG
mharris 0d9e8f6
   fprintf(stderr, "dos2unix: using %s as temp file\n", TempPath);
mharris 0d9e8f6
 #endif DEBUG