Using tempnam() is deprecated, this gives warning and fails the build
with -Werror.
https://bugzilla.gnome.org/show_bug.cgi?id=745858
FILE *
open_tmp_file (char **name)
{
- FILE *file;
+ FILE *file = NULL;
*name = NULL;
+#if !HAVE_MKSTEMP
/* Windows does not like tmpfile(). This is likely because tmpfile()
* call unlink() on the file before returning it, to make sure the
* file is deleted when it is closed. The unlink() call also fails
*name = uniq_tmp_file;
free (tmp_file);
}
+#else
+ int fd = -1;
+ const char *tmp_dir = getenv ("TEMP");
+ if (!tmp_dir) {
+ tmp_dir = ".";
+ }
+ *name = ck_strdup_printf ("%s/check_XXXXXX", tmp_dir);
+ if (-1 < (fd = mkstemp (*name))) {
+ file = fdopen (fd, "w+b");
+ if (0 == unlink (*name) || NULL == file) {
+ free (*name);
+ *name = NULL;
+ }
+ }
+#endif
return file;
}
AC_CHECK_DECLS([strdup])
AC_CHECK_FUNCS([_strdup])
+dnl Check for mkstemp
+AC_CHECK_FUNCS([mkstemp])
+
dnl Check for fork
AC_CHECK_FUNCS([fork], HAVE_FORK=1, HAVE_FORK=0)
AC_SUBST(HAVE_FORK)