aboutsummaryrefslogtreecommitdiff
path: root/swaynag
diff options
context:
space:
mode:
Diffstat (limited to 'swaynag')
-rw-r--r--swaynag/config.c12
1 files changed, 4 insertions, 8 deletions
diff --git a/swaynag/config.c b/swaynag/config.c
index 80c5ad88..d6c5739d 100644
--- a/swaynag/config.c
+++ b/swaynag/config.c
@@ -19,18 +19,14 @@ static char *read_from_stdin() {
continue;
}
- if (!buffer) {
- buffer = strdup(line);
- } else {
- buffer = realloc(buffer, strlen(buffer) + strlen(line) + 2);
- strcat(buffer, line);
- strcat(buffer, "\n");
- }
+ size_t curlen = buffer ? strlen(buffer) : 0;
+ buffer = realloc(buffer, curlen + strlen(line) + 2);
+ snprintf(buffer + curlen, strlen(line) + 2, "%s\n", line);
free(line);
}
- if (buffer && buffer[strlen(buffer) - 1] == '\n') {
+ while (buffer && buffer[strlen(buffer) - 1] == '\n') {
buffer[strlen(buffer) - 1] = '\0';
}