From dc467c215b26301e9097a7dc7e81555ed1254a95 Mon Sep 17 00:00:00 2001 From: Laslo Hunhold Date: Thu, 10 Aug 2017 22:22:39 +0200 Subject: Reduce -o | -n to -s What we really want is to either output to WM_NAME or stdout. If we want just one single line, we do slstatus | head -n 1. --- slstatus.c | 31 ++++++++++--------------------- 1 file changed, 10 insertions(+), 21 deletions(-) (limited to 'slstatus.c') diff --git a/slstatus.c b/slstatus.c index b31f21d..4b6770b 100644 --- a/slstatus.c +++ b/slstatus.c @@ -75,7 +75,6 @@ static void usage(void); char *argv0; static unsigned short int delay = 0; static unsigned short int done; -static unsigned short int oflag, nflag; static Display *dpy; #include "config.h" @@ -840,41 +839,34 @@ sighandler(const int signo) static void usage(void) { - fprintf(stderr, "usage: %s [-o | -n]\n", argv0); + fprintf(stderr, "usage: %s [-s]\n", argv0); exit(1); } int main(int argc, char *argv[]) { - unsigned short int i; - char status_string[MAXLEN]; - char *element; struct arg argument; struct sigaction act; - size_t len; + size_t i, len; + int sflag = 0; + char status_string[MAXLEN]; + char *element; ARGBEGIN { - case 'o': - oflag = 1; - break; - case 'n': - nflag = 1; + case 's': + sflag = 1; break; default: usage(); } ARGEND - if (oflag && nflag) { - usage(); - } - memset(&act, 0, sizeof(act)); act.sa_handler = sighandler; sigaction(SIGINT, &act, 0); sigaction(SIGTERM, &act, 0); - if (!oflag) { + if (!sflag) { dpy = XOpenDisplay(NULL); } @@ -896,11 +888,8 @@ main(int argc, char *argv[]) } } - if (oflag) { - printf("%s\n", status_string); - } else if (nflag) { + if (sflag) { printf("%s\n", status_string); - done = 1; } else { XStoreName(dpy, DefaultRootWindow(dpy), status_string); XSync(dpy, False); @@ -915,7 +904,7 @@ main(int argc, char *argv[]) } } - if (!oflag) { + if (!sflag) { XStoreName(dpy, DefaultRootWindow(dpy), NULL); XCloseDisplay(dpy); } -- cgit v1.2.3