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