Xinqi Bao's Git
projects
/
slstatus.git
/ diff
summary
|
log
|
commit
|
diff
|
tree
raw
|
patch
|
inline
| side by side (parent:
ac1a57e
)
added option to output only once and exit afterwards
author
Aaron Marcher <
[email protected]
>
Thu, 11 May 2017 17:06:45 +0000
(19:06 +0200)
committer
Aaron Marcher <
[email protected]
>
Thu, 11 May 2017 17:06:45 +0000
(19:06 +0200)
slstatus.1
diff
|
blob
|
history
slstatus.c
diff
|
blob
|
history
diff --git
a/slstatus.1
b/slstatus.1
index
afc3505
..
de5d0e8
100644
(file)
--- a/
slstatus.1
+++ b/
slstatus.1
@@
-15,7
+15,10
@@
run slstatus as daemon in background
display help
.TP
.B \-o
display help
.TP
.B \-o
-output to console instead of WM_NAME
+output continuously to console instead of WM_NAME
+.TP
+.B \-n
+output to console once and exit
.TP
.B \-v
display version and copyright details
.TP
.B \-v
display version and copyright details
diff --git
a/slstatus.c
b/slstatus.c
index
9e6aca0
..
8241451
100644
(file)
--- a/
slstatus.c
+++ b/
slstatus.c
@@
-71,7
+71,7
@@
static void usage(const int eval);
char *argv0;
static unsigned short int delay = 0;
static unsigned short int done;
char *argv0;
static unsigned short int delay = 0;
static unsigned short int done;
-static unsigned short int dflag, oflag;
+static unsigned short int dflag, oflag
, nflag
;
static Display *dpy;
#include "config.h"
static Display *dpy;
#include "config.h"
@@
-775,7
+775,7
@@
sighandler(const int signo)
static void
usage(const int eval)
{
static void
usage(const int eval)
{
- fprintf(stderr, "usage: %s [-d] [-o] [-v] [-h]\n", argv0);
+ fprintf(stderr, "usage: %s [-d] [-o] [-
n] [-
v] [-h]\n", argv0);
exit(eval);
}
exit(eval);
}
@@
-795,6
+795,9
@@
main(int argc, char *argv[])
case 'o':
oflag = 1;
break;
case 'o':
oflag = 1;
break;
+ case 'n':
+ nflag = 1;
+ break;
case 'v':
printf("slstatus (C) 2016-2017 slstatus engineers\n");
return 0;
case 'v':
printf("slstatus (C) 2016-2017 slstatus engineers\n");
return 0;
@@
-804,7
+807,7
@@
main(int argc, char *argv[])
usage(1);
} ARGEND
usage(1);
} ARGEND
- if (
dflag && oflag
) {
+ if (
(dflag && oflag) || (dflag && nflag) || (oflag && nflag)
) {
usage(1);
}
if (dflag && daemon(1, 1) < 0) {
usage(1);
}
if (dflag && daemon(1, 1) < 0) {
@@
-842,11
+845,14
@@
main(int argc, char *argv[])
free(element);
}
free(element);
}
- if (!oflag) {
+ if (oflag) {
+ printf("%s\n", status_string);
+ } else if (nflag) {
+ printf("%s\n", status_string);
+ done = 1;
+ } else {
XStoreName(dpy, DefaultRootWindow(dpy), status_string);
XSync(dpy, False);
XStoreName(dpy, DefaultRootWindow(dpy), status_string);
XSync(dpy, False);
- } else {
- printf("%s\n", status_string);
}
if ((UPDATE_INTERVAL - delay) <= 0) {
}
if ((UPDATE_INTERVAL - delay) <= 0) {