From 7a3b3a376308df191b19b73fe8dbe97659a1061a Mon Sep 17 00:00:00 2001 From: Daniel Mack Date: Fri, 15 Apr 2011 19:35:25 +0200 Subject: util: Implement pa_get_binary_name() for Mac OS X --- src/pulse/util.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) (limited to 'src/pulse') diff --git a/src/pulse/util.c b/src/pulse/util.c index c5cfc8ca..48ccf295 100644 --- a/src/pulse/util.c +++ b/src/pulse/util.c @@ -49,6 +49,11 @@ #include #endif +#ifdef OS_IS_DARWIN +#include +#include +#endif + #include #include @@ -221,6 +226,27 @@ char *pa_get_binary_name(char *s, size_t l) { } #endif +#ifdef OS_IS_DARWIN + { + int mib[] = { CTL_KERN, KERN_PROCARGS, getpid(), 0 }; + size_t len, nmib = (sizeof(mib) / sizeof(mib[0])) - 1; + char *buf; + + sysctl(mib, nmib, NULL, &len, NULL, 0); + buf = (char *) pa_xmalloc(len); + + if (sysctl(mib, nmib, buf, &len, NULL, 0) == 0) { + pa_strlcpy(s, basename(buf), l); + pa_xfree(buf); + return s; + } + + pa_xfree(buf); + + /* fall thru */ + } +#endif /* OS_IS_DARWIN */ + errno = ENOENT; return NULL; } -- cgit