diff options
author | foobar <sniper@php.net> | 2003-04-25 21:31:23 +0000 |
---|---|---|
committer | foobar <sniper@php.net> | 2003-04-25 21:31:23 +0000 |
commit | b83fc1a8020c56cf58b63029d8c990738d264ac6 (patch) | |
tree | 37242fa158c4d68911b0003aaf76023dde2f69bd /ext/mysql/libmysql/my_tempnam.c | |
parent | f140ae993fef1d18933a6d312e65677a3409381d (diff) | |
download | php-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.c | 22 |
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)); |