+ fd_set rdset;
+ FD_ZERO(&rdset);
+ FD_SET(0, &rdset);
+
+ while((res = select(1, &rdset, 0, 0, &tv)) == -1 && errno == EINTR);
+
+ if(res > 0 && FD_ISSET(0, &rdset)) {
+ while((c = fgetc(stdin)) >= 0) {
+ game_input(c);
+ if(quit) goto end;
+ }
+ }
+
+ msec = get_msec();
+ next = update(msec);
+
+ tv.tv_sec = next / 1000;
+ tv.tv_usec = (next % 1000) * 1000;