225 return xerrorxlib(dpy, ee); /* may call exit */ |
225 return xerrorxlib(dpy, ee); /* may call exit */ |
226 } |
226 } |
227 |
227 |
228 int |
228 int |
229 main(int argc, char *argv[]) { |
229 main(int argc, char *argv[]) { |
|
230 char *p; |
230 int r, xfd; |
231 int r, xfd; |
231 fd_set rd; |
232 fd_set rd; |
232 |
233 |
233 if(argc == 2 && !strncmp("-v", argv[1], 3)) { |
234 if(argc == 2 && !strncmp("-v", argv[1], 3)) { |
234 fputs("dwm-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout); |
235 fputs("dwm-"VERSION", (C)opyright MMVI Anselm R. Garbe\n", stdout); |
268 FD_SET(STDIN_FILENO, &rd); |
269 FD_SET(STDIN_FILENO, &rd); |
269 FD_SET(xfd, &rd); |
270 FD_SET(xfd, &rd); |
270 if(select(xfd + 1, &rd, NULL, NULL, NULL) == -1) { |
271 if(select(xfd + 1, &rd, NULL, NULL, NULL) == -1) { |
271 if(errno == EINTR) |
272 if(errno == EINTR) |
272 continue; |
273 continue; |
273 else |
274 eprint("select failed\n"); |
274 eprint("select failed\n"); |
|
275 } |
275 } |
276 if(FD_ISSET(STDIN_FILENO, &rd)) { |
276 if(FD_ISSET(STDIN_FILENO, &rd)) { |
277 switch(r = read(STDIN_FILENO, stext, sizeof(stext) - 1)) { |
277 switch(r = read(STDIN_FILENO, stext, sizeof stext - 1)) { |
278 case -1: |
278 case -1: |
279 strncpy(stext, strerror(errno), sizeof(stext)); |
279 strncpy(stext, strerror(errno), sizeof stext - 1); |
280 stext[sizeof(stext) - 1] = '\0'; |
|
281 readin = False; |
280 readin = False; |
282 break; |
281 break; |
283 case 0: |
282 case 0: |
284 strncpy(stext, "EOF", sizeof(stext)); |
283 strncpy(stext, "EOF", sizeof stext); |
285 readin = False; |
284 readin = False; |
286 break; |
285 break; |
287 default: |
286 default: |
288 stext[r - (stext[r - 1] == '\n' ? 1 : 0)] = '\0'; |
287 stext[r - (stext[r - 1] == '\n' ? 1 : 0)] = '\0'; |
|
288 for(p = stext + strlen(stext) - 1; p > stext && *p != '\n'; --p); |
|
289 if(p > stext) |
|
290 strncpy(stext, p + 1, sizeof stext); |
289 } |
291 } |
290 drawstatus(); |
292 drawstatus(); |
291 } |
293 } |
292 if(FD_ISSET(xfd, &rd)) |
294 if(FD_ISSET(xfd, &rd)) |
293 procevent(); |
295 procevent(); |