From: Quentin Rameau Date: Tue, 29 May 2018 19:32:29 +0000 (+0200) Subject: Flush the output stream instead of arbitrarily disabling buffering X-Git-Url: https://git.xinqibao.xyz/slstatus.git/commitdiff_plain/7fe240856eef7b56d8ca0b57fd5642dbdc5b89b1?hp=81d5b427cb10eae98fc958627336503390b9a1c1 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. --- diff --git a/slstatus.c b/slstatus.c index 7776fd5..e6aa90b 100644 --- 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");