From 33adf9e35813dc28c969b5f482f8bce86bcddf42 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Peter=20Draho=C5=A1?= Date: Fri, 25 Mar 2011 03:45:13 +0100 Subject: OSX can now detect executable path faster. Fallback is now only for unsupported systems. --- src/loadlib_rel.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/loadlib_rel.c b/src/loadlib_rel.c index cc21a3d..5ba8d23 100644 --- a/src/loadlib_rel.c +++ b/src/loadlib_rel.c @@ -55,10 +55,16 @@ static void setprogdir (lua_State *L); #else #define _PATH_MAX PATH_MAX #endif + #if defined(__linux__) #include /* readlink */ #endif +#if defined(__APPLE__) + #include + #include +#endif + static void setprogdir (lua_State *L) { char progdir[_PATH_MAX + 1]; char *lb; @@ -77,6 +83,10 @@ static void setprogdir (lua_State *L) { #elif defined(__FreeBSD__) n = readlink("/proc/curproc/file", progdir, nsize); if (n > 0) progdir[n] = 0; +#elif defined(__APPLE__) + uint32_t nsize_apple = nsize; + if (_NSGetExecutablePath(progdir, &nsize_apple) == 0) + n = strlen(progdir); #else // FALLBACK // Use 'lsof' ... should work on most UNIX systems (incl. OSX) -- cgit v1.2.1