diff options
Diffstat (limited to 'swaynag/config.c')
-rw-r--r-- | swaynag/config.c | 12 |
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() { | |||
19 | continue; | 19 | continue; |
20 | } | 20 | } |
21 | 21 | ||
22 | if (!buffer) { | 22 | size_t curlen = buffer ? strlen(buffer) : 0; |
23 | buffer = strdup(line); | 23 | buffer = realloc(buffer, curlen + strlen(line) + 2); |
24 | } else { | 24 | snprintf(buffer + curlen, strlen(line) + 2, "%s\n", line); |
25 | buffer = realloc(buffer, strlen(buffer) + strlen(line) + 2); | ||
26 | strcat(buffer, line); | ||
27 | strcat(buffer, "\n"); | ||
28 | } | ||
29 | 25 | ||
30 | free(line); | 26 | free(line); |
31 | } | 27 | } |
32 | 28 | ||
33 | if (buffer && buffer[strlen(buffer) - 1] == '\n') { | 29 | while (buffer && buffer[strlen(buffer) - 1] == '\n') { |
34 | buffer[strlen(buffer) - 1] = '\0'; | 30 | buffer[strlen(buffer) - 1] = '\0'; |
35 | } | 31 | } |
36 | 32 | ||