Flush the output stream instead of arbitrarily disabling buffering - slstatus - status monitor
(HTM) git clone git://git.suckless.org/slstatus
(DIR) Log
(DIR) Files
(DIR) Refs
(DIR) README
(DIR) LICENSE
---
(DIR) commit 7fe240856eef7b56d8ca0b57fd5642dbdc5b89b1
(DIR) parent 81d5b427cb10eae98fc958627336503390b9a1c1
(HTM) Author: Quentin Rameau <quinq@fifth.space>
Date: Tue, 29 May 2018 21:32:29 +0200
Flush the output stream instead of arbitrarily disabling buffering
This is (arguably) more elegant and it matches Xlib output logic.
Also use puts instead of printf as we don't do formating there.
Diffstat:
M slstatus.c | 11 ++++-------
1 file changed, 4 insertions(+), 7 deletions(-)
---
(DIR) diff --git a/slstatus.c b/slstatus.c
@@ -73,10 +73,6 @@ main(int argc, char *argv[])
sigaction(SIGINT, &act, NULL);
sigaction(SIGTERM, &act, NULL);
- if (sflag) {
- setbuf(stdout, NULL);
- }
-
if (!sflag && !(dpy = XOpenDisplay(NULL))) {
die("XOpenDisplay: Failed to open display");
}
@@ -99,9 +95,10 @@ main(int argc, char *argv[])
}
if (sflag) {
- if (printf("%s\n", status) < 0) {
- die("printf:");
- }
+ puts(status);
+ fflush(stdout);
+ if (ferror(stdout))
+ die("puts:");
} else {
if (XStoreName(dpy, DefaultRootWindow(dpy), status) < 0) {
die("XStoreName: Allocation failed");