1
0
mirror of https://git.FreeBSD.org/ports.git synced 2025-01-01 05:45:45 +00:00
freebsd-ports/news/knews/files/patch-file.c
Kris Kennaway 4f7ad857f3 Fix build on -current (use TMPDIR environment variable to get preferred
tmp directory, and fall back to _PATH_TMP, instead of using header
definitions that are no longer visible by default.)

Submitted by:	Steven G. Kargl <kargl@troutmask.apl.washington.edu> (based on)
PR:		ports/42510
2002-10-12 22:08:01 +00:00

40 lines
809 B
C

--- src/file.c.orig Fri Jan 9 09:16:19 1998
+++ src/file.c Sat Sep 7 16:51:54 2002
@@ -4,6 +4,7 @@
#include "global.h"
#include <sys/stat.h>
+#include <paths.h>
#include "expand.h"
#include "file.h"
@@ -185,16 +186,18 @@
int create_temp_fd(char **name)
{
int fd;
-
- *name = tmpnam(NULL);
- if (!*name)
- fd = -1;
- else {
- unlink(*name);
- fd = open(*name, O_RDWR|O_CREAT|O_EXCL, S_IRUSR|S_IWUSR);
- if (fd < 0)
- *name = NULL;
- }
+ char filename[FILENAME_MAX];
+ char *tmpdir;
+
+ if ((tmpdir = getenv("TMPDIR")) == NULL)
+ tmpdir = _PATH_TMP;
+ strlcpy(filename, tmpdir, FILENAME_MAX);
+ strlcat(filename, "/tmp.XXXXXX", FILENAME_MAX);
+
+ if ((fd = mkstemp(filename)) == -1)
+ *name = NULL;
+ else
+ *name = filename;
return fd;
}