diff options
Diffstat (limited to 'common')
-rw-r--r-- | common/ipc-client.c | 16 |
1 files changed, 12 insertions, 4 deletions
diff --git a/common/ipc-client.c b/common/ipc-client.c index 1e88e71f..79ed3555 100644 --- a/common/ipc-client.c +++ b/common/ipc-client.c @@ -22,9 +22,13 @@ char *get_socketpath(void) { size_t line_size = 0; FILE *fp = popen("sway --get-socketpath 2>/dev/null", "r"); if (fp) { - getline(&line, &line_size, fp); + ssize_t nret = getline(&line, &line_size, fp); pclose(fp); - if (line && *line) { + if (nret > 0) { + // remove trailing newline, if there is one + if (line[nret - 1] == '\n') { + line[nret - 1] = '\0'; + } return line; } } @@ -35,9 +39,13 @@ char *get_socketpath(void) { } fp = popen("i3 --get-socketpath 2>/dev/null", "r"); if (fp) { - getline(&line, &line_size, fp); + ssize_t nret = getline(&line, &line_size, fp); pclose(fp); - if (line && *line) { + if (nret > 0) { + // remove trailing newline, if there is one + if (line[nret - 1] == '\n') { + line[nret - 1] = '\0'; + } return line; } } |