summaryrefslogtreecommitdiff
path: root/hash.c
diff options
context:
space:
mode:
authorknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-10-17 16:13:44 +0000
committerknu <knu@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2002-10-17 16:13:44 +0000
commit6dfb5aa6ac5c9432ad7a7b8bebda4916004051b6 (patch)
treef62049451f68c0a2ae407349faa4a9f53e61e0df /hash.c
parent9dce0d8f0b1cd52fee0a9ddad61fa63d8c83c829 (diff)
* hash.c, eval.c: Use (*_NSGetEnviron()) instead of environ on
Darwin for namespace cleanness. [ruby-core:00537] * dln.c (dln_load): Fix Darwin support that has been disabled and switch to using it on Darwin instead of the system dlopen(). [ruby-core:00541] git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@2969 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'hash.c')
-rw-r--r--hash.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/hash.c b/hash.c
index 69ca1db..d759afd 100644
--- a/hash.c
+++ b/hash.c
@@ -17,6 +17,10 @@
#include "util.h"
#include "rubysig.h"
+#ifdef __APPLE__
+#include <crt_externs.h>
+#endif
+
#define HASH_DELETED FL_USER1
#define HASH_PROC_DEFAULT FL_USER2
@@ -944,6 +948,11 @@ static char **origenviron;
static char **my_environ;
#undef environ
#define environ my_environ
+#elif defined(__APPLE__)
+#undef environ
+#define environ (*_NSGetEnviron())
+#define GET_ENVIRON(e) (e)
+#define FREE_ENVIRON(e)
#else
extern char **environ;
#define GET_ENVIRON(e) (e)