Merge pull request #18 from schani/master

get_exename() for OSX >= 10.9
This commit is contained in:
Jeff Bezanson 2016-09-17 14:43:59 -04:00 committed by GitHub
commit bf5e0d2210
1 changed files with 4 additions and 9 deletions

View File

@ -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