From 7ab0c0662a95eb504665c940f92c2fde895929be Mon Sep 17 00:00:00 2001 From: SmallJoker Date: Fri, 22 May 2020 14:19:07 +0200 Subject: MacOS: Fix environ not being found --- src/porting.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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 +#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; -- cgit v1.2.3