commit 6bbd6545f422bab6dfd341d88e99316f4cdab7ac
parent cc1b97c7315aee3d9a25438cca32c6a4f3b25d9a
Author: MateuszOkulus <mateusz.okulus@protonmail.com>
Date: Fri, 24 Apr 2020 09:20:34 +0200
Remove newlines from command output
Diffstat:
1 file changed, 15 insertions(+), 0 deletions(-)
diff --git 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;