From 0c268f5fc93fe3e96c543b771a5d6070d4c55985 Mon Sep 17 00:00:00 2001 From: Ivan Mikhnovich Date: Sun, 23 May 2021 19:24:42 +0300 Subject: [PATCH] Replace bughy implementation of function 'remove_all()'. Counterexample for old implementation: char str[] = "aaa"; remove_all(str, 'a'); printf("%s\n", str); // displays "a" if we're lucky, //or crashes if we're not. --- dwmblocks.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/dwmblocks.c b/dwmblocks.c index 18f58fb..563a07e 100644 --- a/dwmblocks.c +++ b/dwmblocks.c @@ -51,13 +51,13 @@ void remove_all(char *str, char to_remove) { char *read = str; char *write = str; while (*read) { - if (*read == to_remove) { - read++; + if (*read != to_remove) { *write = *read; + ++write; } - read++; - write++; + ++read; } + *write = '\0'; } //opens process *cmd and stores output in *output