aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSmallJoker <mk939@ymail.com>2020-05-22 14:19:07 +0200
committerSmallJoker <mk939@ymail.com>2020-05-22 14:24:55 +0200
commit7ab0c0662a95eb504665c940f92c2fde895929be (patch)
treec750e02fdf6cf6a8f77429128bce393f5bb1d90f
parent1357ea1da25bf01acaf95d5f5419d4f83a84ed61 (diff)
downloadminetest-7ab0c0662a95eb504665c940f92c2fde895929be.tar.gz
minetest-7ab0c0662a95eb504665c940f92c2fde895929be.tar.bz2
minetest-7ab0c0662a95eb504665c940f92c2fde895929be.zip
MacOS: Fix environ not being found
-rw-r--r--src/porting.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/porting.cpp b/src/porting.cpp
index ef1640467..29af62f7d 100644
--- a/src/porting.cpp
+++ b/src/porting.cpp
@@ -49,6 +49,11 @@ with this program; if not, write to the Free Software Foundation, Inc.,
#if defined(__ANDROID__)
#include "porting_android.h"
#endif
+#if defined(__APPLE__)
+ // For _NSGetEnviron()
+ // Related: https://gitlab.haskell.org/ghc/ghc/issues/2458
+ #include <crt_externs.h>
+#endif
#include "config.h"
#include "debug.h"
@@ -718,7 +723,8 @@ bool openURL(const std::string &url)
return true;
#elif defined(__APPLE__)
const char *argv[] = {"open", url.c_str(), NULL};
- return posix_spawnp(NULL, "open", NULL, NULL, (char**)argv, environ) == 0;
+ return posix_spawnp(NULL, "open", NULL, NULL, (char**)argv,
+ (*_NSGetEnviron())) == 0;
#else
const char *argv[] = {"xdg-open", url.c_str(), NULL};
return posix_spawnp(NULL, "xdg-open", NULL, NULL, (char**)argv, environ) == 0;