|
|
@@ -166,22 +166,17 @@ main(int argc, char *argv[])
|
|
|
int i, n;
|
|
|
unsigned int mask;
|
|
|
fd_set rd;
|
|
|
- Bool readstdin = True;
|
|
|
+ Bool readin = True;
|
|
|
Window w;
|
|
|
XEvent ev;
|
|
|
XSetWindowAttributes wa;
|
|
|
|
|
|
- for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) {
|
|
|
- switch (argv[i][1]) {
|
|
|
- default:
|
|
|
- eprint("usage: dwm [-v]\n");
|
|
|
- break;
|
|
|
- case 'v':
|
|
|
- fputs("dwm-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout);
|
|
|
- exit(EXIT_SUCCESS);
|
|
|
- break;
|
|
|
- }
|
|
|
+ if(argc == 2 && !strncmp("-v", argv[1], 3)) {
|
|
|
+ fputs("dwm-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout);
|
|
|
+ exit(EXIT_SUCCESS);
|
|
|
}
|
|
|
+ else if(argc != 1)
|
|
|
+ eprint("usage: dwm [-v]\n");
|
|
|
|
|
|
dpy = XOpenDisplay(0);
|
|
|
if(!dpy)
|
|
|
@@ -256,10 +251,9 @@ main(int argc, char *argv[])
|
|
|
scan();
|
|
|
|
|
|
/* main event loop, reads status text from stdin as well */
|
|
|
-Mainloop:
|
|
|
while(running) {
|
|
|
FD_ZERO(&rd);
|
|
|
- if(readstdin)
|
|
|
+ if(readin)
|
|
|
FD_SET(STDIN_FILENO, &rd);
|
|
|
FD_SET(ConnectionNumber(dpy), &rd);
|
|
|
|
|
|
@@ -276,20 +270,12 @@ Mainloop:
|
|
|
(handler[ev.type])(&ev); /* call handler */
|
|
|
}
|
|
|
}
|
|
|
- if(readstdin && FD_ISSET(STDIN_FILENO, &rd)) {
|
|
|
- i = n = 0;
|
|
|
- for(;;) {
|
|
|
- if((i = getchar()) == EOF) {
|
|
|
- /* broken pipe/end of producer */
|
|
|
- readstdin = False;
|
|
|
- strcpy(stext, "broken pipe");
|
|
|
- goto Mainloop;
|
|
|
- }
|
|
|
- if(i == '\n' || n >= sizeof(stext) - 1)
|
|
|
- break;
|
|
|
- stext[n++] = i;
|
|
|
- }
|
|
|
- stext[n] = 0;
|
|
|
+ if(readin && FD_ISSET(STDIN_FILENO, &rd)) {
|
|
|
+ readin = NULL != fgets(stext, sizeof(stext), stdin);
|
|
|
+ if(readin)
|
|
|
+ stext[strlen(stext) - 1] = 0;
|
|
|
+ else
|
|
|
+ strcpy(stext, "broken pipe");
|
|
|
drawstatus();
|
|
|
}
|
|
|
}
|