- ret = select(cmdfd+1, &rfd, NULL, NULL, &tv);
- if(ret < 0) {
- fprintf(stderr, "select: %m\n");
- running = 0;
+ FD_SET(xfd, &rfd);
+ XFlush(xw.dis);
+ ret = select(MAX(xfd, cmdfd)+1, &rfd, NULL, NULL, NULL);
+
+ if(ret < 0)
+ die("select failed: %s\n", SERRNO);
+
+ if(FD_ISSET(xfd, &rfd)) {
+ while(XPending(xw.dis)) {
+ XNextEvent(xw.dis, &ev);
+ switch (ev.type) {
+ default:
+ break;
+ case KeyPress:
+ kpress(&ev.xkey);
+ break;
+ case Expose:
+ draw(SCredraw);
+ break;
+ case ConfigureNotify:
+ resize(&ev);
+ break;
+ }
+ }