From 12c731865e92d524f91163fa0dd54bd96aa9e6ab Mon Sep 17 00:00:00 2001 From: aajonusonline <62964550+aajonusonline@users.noreply.github.com> Date: Mon, 18 May 2020 23:30:49 +0300 Subject: swallow patch: add FreeBSD support patch from this commit: https://github.com/deadpixi/deadpixi-dwm/commit/42a798c34b4a4182599fc09f661c3b826a77bd54 --- dwm.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'dwm.c') diff --git a/dwm.c b/dwm.c index c58300f..11dd32b 100644 --- a/dwm.c +++ b/dwm.c @@ -2405,18 +2405,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; } -- cgit v1.2.3 From dbad3534f330ac0c3019b90556f70fabfe483e00 Mon Sep 17 00:00:00 2001 From: skeletal738 Date: Sun, 9 Aug 2020 15:32:51 +0100 Subject: dwmblocks doesn't receive signals on OpenBSD, OpenBSD doesn't implement sigqueue. Got rid of these. --- dwm.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'dwm.c') diff --git a/dwm.c b/dwm.c index 47e099c..f3a0705 100644 --- a/dwm.c +++ b/dwm.c @@ -206,7 +206,6 @@ static void focusin(XEvent *e); static void focusmon(const Arg *arg); static void focusstack(const Arg *arg); static Atom getatomprop(Client *c, Atom prop); -static int getdwmblockspid(); static int getrootptr(int *x, int *y); static long getstate(Window w); static int gettextprop(Window w, Atom atom, char *text, unsigned int size); @@ -246,7 +245,10 @@ static void setup(void); static void seturgent(Client *c, int urg); static void showhide(Client *c); static void sigchld(int unused); +#ifndef __OpenBSD__ +static int getdwmblockspid(); static void sigdwmblocks(const Arg *arg); +#endif static void sighup(int unused); static void sigterm(int unused); static void spawn(const Arg *arg); @@ -1016,6 +1018,7 @@ getatomprop(Client *c, Atom prop) return atom; } +#ifndef __OpenBSD__ int getdwmblockspid() { @@ -1027,6 +1030,7 @@ getdwmblockspid() dwmblockspid = pid; return pid != 0 ? 0 : -1; } +#endif int getrootptr(int *x, int *y) @@ -1908,6 +1912,7 @@ sigterm(int unused) quit(&a); } +#ifndef __OpenBSD__ void sigdwmblocks(const Arg *arg) { @@ -1924,6 +1929,7 @@ sigdwmblocks(const Arg *arg) } } } +#endif void spawn(const Arg *arg) -- cgit v1.2.3