Selaa lähdekoodia

Add a -1 option flag

Allow slstatus to be used by programs that can grab status by calling
an external program on a periodic basis (e.g. tmux)
Daniel Moch 5 vuotta sitten
vanhempi
commit
aaf279f6dd
2 muutettua tiedostoa jossa 10 lisäystä ja 4 poistoa
  1. 4 1
      slstatus.1
  2. 6 3
      slstatus.c

+ 4 - 1
slstatus.1

@@ -1,4 +1,4 @@
-.Dd 2017-08-10
+.Dd 2020-06-23
 .Dt SLSTATUS 1
 .Os
 .Sh NAME
@@ -7,6 +7,7 @@
 .Sh SYNOPSIS
 .Nm
 .Op Fl s
+.Op Fl 1
 .Sh DESCRIPTION
 .Nm
 is a suckless status monitor for window managers that use WM_NAME (e.g. dwm) or
@@ -18,6 +19,8 @@ outputs to WM_NAME.
 .Bl -tag -width Ds
 .It Fl s
 Write to stdout instead of WM_NAME.
+.It Fl 1
+Write once to stdout and quit.
 .El
 .Sh CUSTOMIZATION
 .Nm

+ 6 - 3
slstatus.c

@@ -41,7 +41,7 @@ difftimespec(struct timespec *res, struct timespec *a, struct timespec *b)
 static void
 usage(void)
 {
-	die("usage: %s [-s]", argv0);
+	die("usage: %s [-s] [-1]", argv0);
 }
 
 int
@@ -56,6 +56,9 @@ main(int argc, char *argv[])
 
 	sflag = 0;
 	ARGBEGIN {
+		case '1':
+			done = 1;
+			/* fallthrough */
 		case 's':
 			sflag = 1;
 			break;
@@ -78,7 +81,7 @@ main(int argc, char *argv[])
 		die("XOpenDisplay: Failed to open display");
 	}
 
-	while (!done) {
+	do {
 		if (clock_gettime(CLOCK_MONOTONIC, &start) < 0) {
 			die("clock_gettime:");
 		}
@@ -125,7 +128,7 @@ main(int argc, char *argv[])
 				}
 			}
 		}
-	}
+	} while (!done);
 
 	if (!sflag) {
 		XStoreName(dpy, DefaultRootWindow(dpy), NULL);