simplified main.c, switching back to single urxvt usage
4970ef93
2 file(s) · +14 −28
| 23 | 23 | const char *browse[] = { "firefox", NULL }; |
|
| 24 | 24 | const char *gimp[] = { "gimp", NULL }; |
|
| 25 | 25 | const char *term[] = { |
|
| 26 | - | "urxvtc", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white", |
|
| 26 | + | "urxvt", "-tr", "+sb", "-bg", "black", "-fg", "white", "-cr", "white", |
|
| 27 | 27 | "-fn", "-*-terminus-medium-*-*-*-13-*-*-*-*-*-iso10646-*", NULL |
|
| 28 | 28 | }; |
|
| 29 | 29 | const char *xlock[] = { "xlock", NULL }; |
| 166 | 166 | int i, n; |
|
| 167 | 167 | unsigned int mask; |
|
| 168 | 168 | fd_set rd; |
|
| 169 | - | Bool readstdin = True; |
|
| 169 | + | Bool readin = True; |
|
| 170 | 170 | Window w; |
|
| 171 | 171 | XEvent ev; |
|
| 172 | 172 | XSetWindowAttributes wa; |
|
| 173 | 173 | ||
| 174 | - | for(i = 1; (i < argc) && (argv[i][0] == '-'); i++) { |
|
| 175 | - | switch (argv[i][1]) { |
|
| 176 | - | default: |
|
| 177 | - | eprint("usage: dwm [-v]\n"); |
|
| 178 | - | break; |
|
| 179 | - | case 'v': |
|
| 180 | - | fputs("dwm-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout); |
|
| 181 | - | exit(EXIT_SUCCESS); |
|
| 182 | - | break; |
|
| 183 | - | } |
|
| 174 | + | if(argc == 2 && !strncmp("-v", argv[1], 3)) { |
|
| 175 | + | fputs("dwm-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout); |
|
| 176 | + | exit(EXIT_SUCCESS); |
|
| 184 | 177 | } |
|
| 178 | + | else if(argc != 1) |
|
| 179 | + | eprint("usage: dwm [-v]\n"); |
|
| 185 | 180 | ||
| 186 | 181 | dpy = XOpenDisplay(0); |
|
| 187 | 182 | if(!dpy) |
|
| 256 | 251 | scan(); |
|
| 257 | 252 | ||
| 258 | 253 | /* main event loop, reads status text from stdin as well */ |
|
| 259 | - | Mainloop: |
|
| 260 | 254 | while(running) { |
|
| 261 | 255 | FD_ZERO(&rd); |
|
| 262 | - | if(readstdin) |
|
| 256 | + | if(readin) |
|
| 263 | 257 | FD_SET(STDIN_FILENO, &rd); |
|
| 264 | 258 | FD_SET(ConnectionNumber(dpy), &rd); |
|
| 265 | 259 | ||
| 276 | 270 | (handler[ev.type])(&ev); /* call handler */ |
|
| 277 | 271 | } |
|
| 278 | 272 | } |
|
| 279 | - | if(readstdin && FD_ISSET(STDIN_FILENO, &rd)) { |
|
| 280 | - | i = n = 0; |
|
| 281 | - | for(;;) { |
|
| 282 | - | if((i = getchar()) == EOF) { |
|
| 283 | - | /* broken pipe/end of producer */ |
|
| 284 | - | readstdin = False; |
|
| 285 | - | strcpy(stext, "broken pipe"); |
|
| 286 | - | goto Mainloop; |
|
| 287 | - | } |
|
| 288 | - | if(i == '\n' || n >= sizeof(stext) - 1) |
|
| 289 | - | break; |
|
| 290 | - | stext[n++] = i; |
|
| 291 | - | } |
|
| 292 | - | stext[n] = 0; |
|
| 273 | + | if(readin && FD_ISSET(STDIN_FILENO, &rd)) { |
|
| 274 | + | readin = NULL != fgets(stext, sizeof(stext), stdin); |
|
| 275 | + | if(readin) |
|
| 276 | + | stext[strlen(stext) - 1] = 0; |
|
| 277 | + | else |
|
| 278 | + | strcpy(stext, "broken pipe"); |
|
| 293 | 279 | drawstatus(); |
|
| 294 | 280 | } |
|
| 295 | 281 | } |
|