diff --git a/code/nel/src/misc/common.cpp b/code/nel/src/misc/common.cpp index c16b4b51e..03bd6c3d0 100644 --- a/code/nel/src/misc/common.cpp +++ b/code/nel/src/misc/common.cpp @@ -23,6 +23,8 @@ # include # include # include +#elif defined NL_OS_MAC +# include #elif defined NL_OS_UNIX # include # include @@ -1091,7 +1093,26 @@ static bool openDocWithExtension (const char *document, const char *ext) return true; } #elif defined(NL_OS_MAC) - return launchProgram("open", document); + CFURLRef url = CFURLCreateWithBytes(NULL, (const UInt8 *)document, strlen(document), kCFStringEncodingUTF8, NULL); + + if (url) + { + OSStatus res = LSOpenCFURLRef(url, 0); + CFRelease(url); + + if (res != 0) + { + nlwarning("LSOpenCFURLRef %s returned %d", document, (sint)res); + return false; + } + + return true; + } + else + { + nlwarning("Unable to create URL from %s", document); + return false; + } #else std::string command = "/usr/bin/xdg-open";