|
|
|
@ -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();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|