Forráskód Böngészése

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.
Quentin Rameau 7 éve
szülő
commit
7fe240856e
1 módosított fájl, 4 hozzáadás és 7 törlés
  1. 4 7
      slstatus.c

+ 4 - 7
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");