Module: wine Branch: master Commit: c296d1fbe1b551c7cf7c159a03c9198592dbae73 URL: http://source.winehq.org/git/wine.git/?a=commit;h=c296d1fbe1b551c7cf7c159a03...
Author: Damjan Jovanovic damjan.jov@gmail.com Date: Sun Jun 3 12:26:30 2012 +0200
libwine: Improve bin directory detection on FreeBSD.
---
libs/wine/config.c | 10 ++++++++-- 1 files changed, 8 insertions(+), 2 deletions(-)
diff --git a/libs/wine/config.c b/libs/wine/config.c index 035c268..031850b 100644 --- a/libs/wine/config.c +++ b/libs/wine/config.c @@ -53,6 +53,12 @@ static void fatal_error( const char *err, ... ) __attribute__((noreturn,format( static void fatal_perror( const char *err, ... ) __attribute__((noreturn,format(printf,1,2))); #endif
+#ifdef __linux__ +#define EXE_LINK "/proc/self/exe" +#elif defined (__FreeBSD__) +#define EXE_LINK "/proc/curproc/file" +#endif + /* die on a fatal error */ static void fatal_error( const char *err, ... ) { @@ -151,12 +157,12 @@ static char *get_runtime_bindir( const char *argv0 ) char *p, *bindir, *cwd; int len, size;
-#ifdef linux +#ifdef EXE_LINK for (size = 256; ; size *= 2) { int ret; if (!(bindir = malloc( size ))) break; - if ((ret = readlink( "/proc/self/exe", bindir, size )) == -1) break; + if ((ret = readlink( EXE_LINK, bindir, size )) == -1) break; if (ret != size) { if (!(p = memrchr( bindir, '/', ret ))) break;