From 42a798c34b4a4182599fc09f661c3b826a77bd54 Mon Sep 17 00:00:00 2001 From: Rob King Date: Tue, 23 May 2017 23:15:40 -0500 Subject: [PATCH] Re-add FreeBSD support. --- dwm.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/dwm.c b/dwm.c index 1644df5..6c3424e 100644 --- a/dwm.c +++ b/dwm.c @@ -2169,18 +2169,25 @@ getparentprocess(pid_t p) { unsigned int v = 0; -#ifdef __linux__ +#if defined(__linux__) FILE *f; char buf[256]; snprintf(buf, sizeof(buf) - 1, "/proc/%u/stat", (unsigned)p); if (!(f = fopen(buf, "r"))) - return 0; + return (pid_t)0; - fscanf(f, "%*u %*s %*c %u", &v); + if (fscanf(f, "%*u %*s %*c %u", (unsigned *)&v) != 1) + v = (pid_t)0; fclose(f); -#endif /* __linux__ */ +#elif defined(__FreeBSD__) + struct kinfo_proc *proc = kinfo_getproc(p); + if (!proc) + return (pid_t)0; + v = proc->ki_ppid; + free(proc); +#endif return (pid_t)v; }