tmux: Add KERN_PROC_CWD support on NetBSD If KERN_PROC_CWD is available use it instead of using procfs. PKGREVISION++ Index: Makefile =================================================================== RCS file: /cvsroot/pkgsrc/misc/tmux/Makefile,v retrieving revision 1.48 diff -u -p -r1.48 Makefile --- Makefile 3 May 2019 10:49:35 -0000 1.48 +++ Makefile 14 Jun 2019 20:07:14 -0000 @@ -1,6 +1,7 @@ # $NetBSD: Makefile,v 1.48 2019/05/03 10:49:35 triaxx Exp $ DISTNAME= tmux-2.9a +PKGREVISION= 1 CATEGORIES= misc MASTER_SITES= ${MASTER_SITE_GITHUB:=tmux/} GITHUB_RELEASE= ${PKGVERSION_NOREV} Index: distinfo =================================================================== RCS file: /cvsroot/pkgsrc/misc/tmux/distinfo,v retrieving revision 1.40 diff -u -p -r1.40 distinfo --- distinfo 3 May 2019 10:49:35 -0000 1.40 +++ distinfo 14 Jun 2019 20:07:14 -0000 @@ -4,3 +4,4 @@ SHA1 (tmux-2.9a.tar.gz) = 33cba73e64c62f RMD160 (tmux-2.9a.tar.gz) = e5460971073abb865adcea2a6711e82d84c53838 SHA512 (tmux-2.9a.tar.gz) = aca6882688727c10c5647443fdd18bbd6c0f80b7a3bf9667903d1b89d523e604cd715f176f33f2e5673258f00e626a6dc273f80fe97ae4f91621814d89985713 Size (tmux-2.9a.tar.gz) = 510915 bytes +SHA1 (patch-osdep-netbsd.c) = 90d335b544dbacc3860cfa6c13ecd61b11f09f30 Index: patches/patch-osdep-netbsd.c =================================================================== RCS file: patches/patch-osdep-netbsd.c diff -N patches/patch-osdep-netbsd.c --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ patches/patch-osdep-netbsd.c 14 Jun 2019 20:07:14 -0000 @@ -0,0 +1,40 @@ +$NetBSD$ + +Add support for KERN_PROC_CWD. + +--- osdep-netbsd.c.orig 2019-03-26 14:34:58.000000000 +0000 ++++ osdep-netbsd.c +@@ -135,11 +135,24 @@ osdep_get_cwd(int fd) + static char target[PATH_MAX + 1]; + char *path; + pid_t pgrp; +- ssize_t n; + + if ((pgrp = tcgetpgrp(fd)) == -1) + return (NULL); + ++#ifdef KERN_PROC_CWD ++ int mib[4]; ++ size_t len; ++ ++ mib[0] = CTL_KERN; ++ mib[1] = KERN_PROC_ARGS; ++ mib[2] = pgrp; ++ mib[3] = KERN_PROC_CWD; ++ len = sizeof(target); ++ if (sysctl(mib, 4, target, &len, NULL, 0) == 0) ++ return (target); ++#else ++ ssize_t n; ++ + xasprintf(&path, "/proc/%lld/cwd", (long long) pgrp); + n = readlink(path, target, sizeof(target) - 1); + free(path); +@@ -147,6 +160,7 @@ osdep_get_cwd(int fd) + target[n] = '\0'; + return (target); + } ++#endif + + return (NULL); + }