diff options
author | nicm <nicm> | 2020-04-08 11:26:07 +0000 |
---|---|---|
committer | nicm <nicm> | 2020-04-08 11:26:07 +0000 |
commit | 5d0eb619f18b1ed98d0ecf492dddf66ab49bed03 (patch) | |
tree | e7a35048bcea4bed43f1b3b4e7094908647d09d5 /procname.c | |
parent | d388dbdea9ceacacadc27a36ccc968fa7d6070ec (diff) | |
download | rtmux-5d0eb619f18b1ed98d0ecf492dddf66ab49bed03.tar.gz rtmux-5d0eb619f18b1ed98d0ecf492dddf66ab49bed03.tar.bz2 rtmux-5d0eb619f18b1ed98d0ecf492dddf66ab49bed03.zip |
Restore pane_current_path format from portable tmux, it is no longer
used by default and is very useful.
Diffstat (limited to 'procname.c')
-rw-r--r-- | procname.c | 15 |
1 files changed, 15 insertions, 0 deletions
@@ -38,6 +38,7 @@ static struct kinfo_proc *cmp_procs(struct kinfo_proc *, struct kinfo_proc *); char *get_proc_name(int, char *); +char *get_proc_cwd(int); static struct kinfo_proc * cmp_procs(struct kinfo_proc *p1, struct kinfo_proc *p2) @@ -132,3 +133,17 @@ error: free(buf); return (NULL); } + +char * +get_proc_cwd(int fd) +{ + int name[] = { CTL_KERN, KERN_PROC_CWD, 0 }; + static char path[MAXPATHLEN]; + size_t pathlen = sizeof path; + + if ((name[2] = tcgetpgrp(fd)) == -1) + return (NULL); + if (sysctl(name, 3, path, &pathlen, NULL, 0) != 0) + return (NULL); + return (path); +} |