Flush the output stream instead of arbitrarily disabling buffering - slstatus - status monitor
HTML git clone git://git.suckless.org/slstatus
DIR Log
DIR Files
DIR Refs
DIR README
DIR LICENSE
---
DIR commit 7fe240856eef7b56d8ca0b57fd5642dbdc5b89b1
DIR parent 81d5b427cb10eae98fc958627336503390b9a1c1
HTML 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");