get_exename() for OSX >= 10.9
This commit is contained in:
parent
bc0b56be76
commit
3c10ecc0be
|
@ -119,17 +119,12 @@ char *get_exename(char *buf, size_t size)
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
#elif defined(MACOSX)
|
#elif defined(MACOSX)
|
||||||
#include <ApplicationServices/ApplicationServices.h>
|
#include <mach-o/dyld.h>
|
||||||
char *get_exename(char *buf, size_t size)
|
char *get_exename(char *buf, size_t size)
|
||||||
{
|
{
|
||||||
ProcessSerialNumber PSN;
|
uint32_t bufsize = (uint32_t)size;
|
||||||
FSRef ref;
|
if (_NSGetExecutablePath(buf, &bufsize))
|
||||||
|
|
||||||
if (GetCurrentProcess(&PSN) < 0 ||
|
|
||||||
GetProcessBundleLocation(&PSN, &ref) < 0 ||
|
|
||||||
FSRefMakePath(&ref, buf, size) < 0)
|
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
return buf;
|
return buf;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue