diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2012-01-27 09:01:06 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2012-01-27 09:01:06 +0000 |
commit | ad2cc63412d563f31b33df3204bb2070cb12f320 (patch) | |
tree | a4739d080115815211bafe7ae340a6778dd3763f /osdep-darwin.c | |
parent | 224255cb8929ddfca5ac82a44dc0f4054705869b (diff) | |
download | rtmux-ad2cc63412d563f31b33df3204bb2070cb12f320.tar.gz rtmux-ad2cc63412d563f31b33df3204bb2070cb12f320.tar.bz2 rtmux-ad2cc63412d563f31b33df3204bb2070cb12f320.zip |
Fill in osdep_get_cwd on Darwin, from Alex Ernst.
Diffstat (limited to 'osdep-darwin.c')
-rw-r--r-- | osdep-darwin.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/osdep-darwin.c b/osdep-darwin.c index c5820df6..9cac1311 100644 --- a/osdep-darwin.c +++ b/osdep-darwin.c @@ -20,6 +20,7 @@ #include <sys/sysctl.h> #include <event.h> +#include <libproc.h> #include <stdlib.h> #include <string.h> #include <unistd.h> @@ -52,6 +53,16 @@ osdep_get_name(int fd, unused char *tty) char * osdep_get_cwd(pid_t pid) { + static char wd[PATH_MAX]; + struct proc_vnodepathinfo pathinfo; + int ret; + + ret = proc_pidinfo( + pid, PROC_PIDVNODEPATHINFO, 0, &pathinfo, sizeof pathinfo); + if (ret == sizeof pathinfo) { + strlcpy(wd, pathinfo.pvi_cdir.vip_path, sizeof wd); + return (wd); + } return (NULL); } |