version 1.7, 1997/11/14 00:23:45 |
version 1.7.10.1, 2000/10/06 21:16:15 |
|
|
"%s/mail.ReXXXXXXXXXX", tmpdir); |
"%s/mail.ReXXXXXXXXXX", tmpdir); |
if ((t = mkstemp(tempname)) == -1 || |
if ((t = mkstemp(tempname)) == -1 || |
(nf = Fdopen(t, "w")) == NULL) { |
(nf = Fdopen(t, "w")) == NULL) { |
warn(tempname); |
warn("%s", tempname); |
goto out; |
goto out; |
} |
} |
if (readonly && fchmod(t, 0400) == -1) { |
if (readonly && fchmod(t, 0400) == -1) { |
warn(tempname); |
warn("%s", tempname); |
(void)rm(tempname); |
(void)rm(tempname); |
goto out; |
goto out; |
} |
} |
|
|
modtime = statb.st_mtime; |
modtime = statb.st_mtime; |
if (ferror(nf)) { |
if (ferror(nf)) { |
(void)Fclose(nf); |
(void)Fclose(nf); |
warn(tempname); |
warn("%s", tempname); |
(void)rm(tempname); |
(void)rm(tempname); |
nf = NULL; |
nf = NULL; |
goto out; |
goto out; |
} |
} |
if (Fclose(nf) < 0) { |
if (Fclose(nf) < 0) { |
warn(tempname); |
warn("%s", tempname); |
(void)rm(tempname); |
(void)rm(tempname); |
nf = NULL; |
nf = NULL; |
goto out; |
goto out; |
|
|
goto out; |
goto out; |
} |
} |
if (stat(tempname, &statb) < 0) { |
if (stat(tempname, &statb) < 0) { |
warn(tempname); |
warn("%s", tempname); |
goto out; |
goto out; |
} |
} |
if (modtime == statb.st_mtime) { |
if (modtime == statb.st_mtime) { |
|
|
* Now switch to new file. |
* Now switch to new file. |
*/ |
*/ |
if ((nf = Fopen(tempname, "a+")) == NULL) { |
if ((nf = Fopen(tempname, "a+")) == NULL) { |
warn(tempname); |
warn("%s", tempname); |
(void)rm(tempname); |
(void)rm(tempname); |
goto out; |
goto out; |
} |
} |