diff options
-rw-r--r-- | src/porting.cpp | 8 |
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; |