diff --git a/configure b/configure index 50be51d38312479cf47343f362d61bf0108eab98..fd887b4df2ed7b5b301131c0c0fb26186fba3f4b 100755 --- a/configure +++ b/configure @@ -673,6 +673,7 @@ HAVE_LIST=" machine_ioctl_meteor_h malloc_h memalign + mkstemp mlib ppc64 sdl @@ -1507,6 +1508,8 @@ fi check_header byteswap.h +check_func mkstemp + check_header arpa/inet.h check_func inet_aton diff --git a/libavcodec/utils.c b/libavcodec/utils.c index 4d6ed7777c5b75bf161472767ff0c38171f62e9d..cd2037884df5e19c53e171c9e3f914e27b28b451 100644 --- a/libavcodec/utils.c +++ b/libavcodec/utils.c @@ -34,7 +34,7 @@ #include <stdarg.h> #include <limits.h> #include <float.h> -#ifdef __MINGW32__ +#if !defined(HAVE_MKSTEMP) #include <fcntl.h> #endif @@ -1333,7 +1333,7 @@ unsigned int av_xiphlacing(unsigned char *s, unsigned int v) * and opened file name in **filename. */ int av_tempfile(char *prefix, char **filename) { int fd=-1; -#ifdef __MINGW32__ +#if !defined(HAVE_MKSTEMP) *filename = tempnam(".", prefix); #else size_t len = strlen(prefix) + 12; /* room for "/tmp/" and "XXXXXX\0" */ @@ -1344,7 +1344,7 @@ int av_tempfile(char *prefix, char **filename) { av_log(NULL, AV_LOG_ERROR, "ff_tempfile: Cannot allocate file name\n"); return -1; } -#ifdef __MINGW32__ +#if !defined(HAVE_MKSTEMP) fd = open(*filename, _O_RDWR | _O_BINARY | _O_CREAT, 0444); #else snprintf(*filename, len, "/tmp/%sXXXXXX", prefix);