Changed: Use same code as under Linux for OS X when executing sheel scripts

This commit is contained in:
kervala 2016-02-13 23:30:00 +01:00
parent b577182adb
commit c98bf02cb0

View file

@ -765,26 +765,34 @@ bool launchProgram(const std::string &programName, const std::string &arguments,
CloseHandle( pi.hThread ); CloseHandle( pi.hThread );
} }
#elif defined(NL_OS_MAC)
// we need to open bundles with "open" command
std::string command = NLMISC::toString("open \"%s\"", programName.c_str());
// append arguments if any
if (!arguments.empty())
{
command += NLMISC::toString(" --args %s", arguments.c_str());
}
int res = system(command.c_str());
if (!res) return true;
if (log)
{
nlwarning ("LAUNCH: Failed launched '%s' with arg '%s' return code %d", programName.c_str(), arguments.c_str(), res);
}
#else #else
#ifdef NL_OS_MAC
// special OS X case with bundles
if (toLower(programName).find(".app") != std::string::npos)
{
// we need to open bundles with "open" command
std::string command = NLMISC::toString("open \"%s\"", programName.c_str());
// append arguments if any
if (!arguments.empty())
{
command += NLMISC::toString(" --args %s", arguments.c_str());
}
int res = system(command.c_str());
if (!res) return true;
if (log)
{
nlwarning ("LAUNCH: Failed launched '%s' with arg '%s' return code %d", programName.c_str(), arguments.c_str(), res);
}
return false;
}
#endif
static bool firstLaunchProgram = true; static bool firstLaunchProgram = true;
if (firstLaunchProgram) if (firstLaunchProgram)
{ {