- if (FD_ISSET(socket, &xset))
- select_result(socket, 4);
- if (FD_ISSET(socket, &rset))
- select_result(socket, 1);
- if (FD_ISSET(socket, &wset))
- select_result(socket, 2);
+ if (FD_ISSET(fd, &xset))
+ select_result(fd, 4);
+ if (FD_ISSET(fd, &rset))
+ select_result(fd, 1);
+ if (FD_ISSET(fd, &wset))
+ select_result(fd, 2);
+ }
+
+ if (FD_ISSET(signalpipe[0], &rset)) {
+ char c[1];
+ struct winsize size;
+ read(signalpipe[0], c, 1); /* ignore its value; it'll be `x' */
+ if (ioctl(0, TIOCGWINSZ, (void *)&size) >= 0)
+ back->size(backhandle, size.ws_col, size.ws_row);