From 6bbd6545f422bab6dfd341d88e99316f4cdab7ac Mon Sep 17 00:00:00 2001
From: MateuszOkulus <mateusz.okulus@protonmail.com>
Date: Fri, 24 Apr 2020 09:20:34 +0200
Subject: Remove newlines from command output

---
 dwmblocks.c | 15 +++++++++++++++
 1 file changed, 15 insertions(+)

diff --git a/dwmblocks.c b/dwmblocks.c
index 0cd0b54..de872bf 100644
--- a/dwmblocks.c
+++ b/dwmblocks.c
@@ -16,6 +16,7 @@ typedef struct {
 void sighandler(int num);
 void buttonhandler(int sig, siginfo_t *si, void *ucontext);
 void replace(char *str, char old, char new);
+void remove_all(char *str, char to_remove);
 void getcmds(int time);
 #ifndef __OpenBSD__
 void getsigcmds(int signal);
@@ -48,6 +49,19 @@ void replace(char *str, char old, char new)
 			str[i] = new;
 }
 
+void remove_all(char *str, char to_remove) {
+	char *read = str;
+	char *write = str;
+	while (*read) {
+		if (*read == to_remove) {
+			read++;
+			*write = *read;
+		}
+		read++;
+		write++;
+	}
+}
+
 //opens process *cmd and stores output in *output
 void getcmd(const Block *block, char *output)
 {
@@ -77,6 +91,7 @@ void getcmd(const Block *block, char *output)
 	char c;
 	int i = strlen(block->icon);
 	fgets(output+i, CMDLENGTH-i, cmdf);
+	remove_all(output, '\n');
 	i = strlen(output);
 	if (delim != '\0' && i)
 		output[i++] = delim;
-- 
cgit v1.2.3