summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--contrib/cvs/diff/diff3.c5
-rw-r--r--contrib/cvs/src/filesubr.c18
2 files changed, 22 insertions, 1 deletions
diff --git a/contrib/cvs/diff/diff3.c b/contrib/cvs/diff/diff3.c
index e3be150..c2997e9 100644
--- a/contrib/cvs/diff/diff3.c
+++ b/contrib/cvs/diff/diff3.c
@@ -12,6 +12,9 @@
GNU General Public License for more details.
*/
+/*
+ * $FreeBSD$
+ */
/* Written by Randy Smith */
/* Librarification by Tim Pierce */
@@ -1274,7 +1277,7 @@ read_diff (filea, fileb, output_placement)
*ap++ = fileb;
*ap = 0;
- diffout = tmpnam(NULL);
+ diffout = (char *)cvs_temp_name();
outfile_hold = outfile;
callbacks_hold = callbacks;
diff --git a/contrib/cvs/src/filesubr.c b/contrib/cvs/src/filesubr.c
index ae64460..83f7fb9 100644
--- a/contrib/cvs/src/filesubr.c
+++ b/contrib/cvs/src/filesubr.c
@@ -686,6 +686,23 @@ xcmp (file1, file2)
4.3), and as last resort tmpnam (POSIX). Reason is that tempnam and
mktemp both allow to specify the directory in which the temporary
file will be created. */
+#if 1
+char *
+cvs_temp_name ()
+{
+ char *value;
+ int retval;
+
+ value = xmalloc (strlen (Tmpdir) + 40);
+ sprintf (value, "%s/%s", Tmpdir, "cvsXXXXXX");
+ retval = mkstemp (value);
+
+ if (retval == -1)
+ error (1, errno, "cannot generate temporary filename");
+ close (retval);
+ return value;
+}
+#else
#ifdef HAVE_TEMPNAM
char *
cvs_temp_name ()
@@ -725,6 +742,7 @@ cvs_temp_name ()
# endif
}
#endif
+#endif
/* Return non-zero iff FILENAME is absolute.
Trivial under Unix, but more complicated under other systems. */
OpenPOWER on IntegriCloud