Blame dos2unix-3.1-preserve-file-modes.patch
|
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
|