From 7524ccd1e5eb69ab177cb7f0bc4044994464be6e Mon Sep 17 00:00:00 2001
From: Luke Smith <luke@lukesmith.xyz>
Date: Fri, 28 Aug 2020 19:27:12 -0400
Subject: update and fork fix

---
 dwmblocks.c | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)

diff --git a/dwmblocks.c b/dwmblocks.c
index d135a7d..68267d7 100644
--- a/dwmblocks.c
+++ b/dwmblocks.c
@@ -193,6 +193,7 @@ void sighandler(int signum)
 void buttonhandler(int sig, siginfo_t *si, void *ucontext)
 {
 	char button[2] = {'0' + si->si_value.sival_int & 0xff, '\0'};
+	pid_t process_id = getpid();
 	sig = si->si_value.sival_int >> 8;
 	if (fork() == 0)
 	{
@@ -203,14 +204,14 @@ void buttonhandler(int sig, siginfo_t *si, void *ucontext)
 			if (current->signal == sig)
 				break;
 		}
-		char *command[] = { "/bin/sh", "-c", current->command, NULL };
+		char shcmd[1024];
+		sprintf(shcmd,"%s && kill -%d %d",current->command, current->signal+34,process_id);
+		char *command[] = { "/bin/sh", "-c", shcmd, NULL };
 		setenv("BLOCK_BUTTON", button, 1);
 		setsid();
 		execvp(command[0], command);
 		exit(EXIT_SUCCESS);
 	}
-	getsigcmds(sig);
-	writestatus();
 }
 
 #endif
-- 
cgit v1.2.3