summaryrefslogtreecommitdiff
path: root/ext/mysql/libmysql/my_tempnam.c
diff options
context:
space:
mode:
authorfoobar <sniper@php.net>2003-04-25 21:31:23 +0000
committerfoobar <sniper@php.net>2003-04-25 21:31:23 +0000
commitb83fc1a8020c56cf58b63029d8c990738d264ac6 (patch)
tree37242fa158c4d68911b0003aaf76023dde2f69bd /ext/mysql/libmysql/my_tempnam.c
parentf140ae993fef1d18933a6d312e65677a3409381d (diff)
downloadphp-git-b83fc1a8020c56cf58b63029d8c990738d264ac6.tar.gz
- Fixed some AIX/HPUX compile issues.
# Just a modified diff of the same file found in mysql 4.0.12 :)
Diffstat (limited to 'ext/mysql/libmysql/my_tempnam.c')
-rw-r--r--ext/mysql/libmysql/my_tempnam.c22
1 files changed, 17 insertions, 5 deletions
diff --git a/ext/mysql/libmysql/my_tempnam.c b/ext/mysql/libmysql/my_tempnam.c
index 4a854aea0b..1daca61f85 100644
--- a/ext/mysql/libmysql/my_tempnam.c
+++ b/ext/mysql/libmysql/my_tempnam.c
@@ -10,6 +10,12 @@ This file is public domain and comes with NO WARRANTY of any kind */
#include "mysys_priv.h"
#include <m_string.h>
+
+/* HPUX 11.0 doesn't allow us to change the environ pointer */
+#ifdef HPUX11
+#undef HAVE_TEMPNAM
+#endif
+
#include "my_static.h"
#include "mysys_err.h"
@@ -19,7 +25,7 @@ This file is public domain and comes with NO WARRANTY of any kind */
#endif
#ifdef HAVE_TEMPNAM
-#if !defined( MSDOS) && !defined(OS2)
+#if !defined( MSDOS) && !defined(OS2) && !defined(__NETWARE__)
extern char **environ;
#endif
#endif
@@ -92,17 +98,23 @@ my_string my_tempnam(const char *dir, const char *pfx,
if (buffer[strlen(buffer)-1] == '\\')
buffer[strlen(buffer)-1] = '\0';
putenv( buffer);
-#else
+#elif !defined(__NETWARE__)
old_env=(char**)environ;
if (dir)
{ /* Don't use TMPDIR if dir is given */
- ((char **)environ)=(char**)temp_env; /* May give warning */
+ /*
+ The following strange cast is required because the IBM compiler on AIX
+ doesn't allow us to cast the value of environ.
+ The cast of environ is needed as some systems doesn't allow us to
+ update environ with a char ** pointer. (const mismatch)
+ */
+ (*(char***) &environ)=(char**) temp_env;
temp_env[0]=0;
}
#endif
res=tempnam((char*) dir,(my_string) pfx); /* Use stand. dir with prefix */
-#ifndef OS2
- ((char**)environ)=(char**)old_env; /* May give warning */
+#if !defined(OS2) && !defined(__NETWARE__)
+ (*(char***) &environ)=(char**) old_env;
#endif
if (!res)
DBUG_PRINT("error",("Got error: %d from tempnam",errno));