comparison src/os_unix.c @ 3133:176bfa951339 v7.3.337

updated for version 7.3.337 Problem: Screen doesn't update after resizing the xterm until a character is typed. Solution: When the select call is interrupted check do_resize. (Taylor Hedberg)
author Bram Moolenaar <bram@vim.org>
date Wed, 12 Oct 2011 21:04:20 +0200
parents d832d642f520
children 98a05814f1b4
comparison
equal deleted inserted replaced
3132:d729ca08d1a6 3133:176bfa951339
5144 # else 5144 # else
5145 ret = select(maxfd + 1, &rfds, NULL, &efds, tvp); 5145 ret = select(maxfd + 1, &rfds, NULL, &efds, tvp);
5146 # endif 5146 # endif
5147 # ifdef EINTR 5147 # ifdef EINTR
5148 if (ret == -1 && errno == EINTR) 5148 if (ret == -1 && errno == EINTR)
5149 {
5150 /* Check whether window has been resized, EINTR may be caused by
5151 * SIGWINCH. */
5152 if (do_resize)
5153 handle_resize();
5154
5149 /* Interrupted by a signal, need to try again. We ignore msec 5155 /* Interrupted by a signal, need to try again. We ignore msec
5150 * here, because we do want to check even after a timeout if 5156 * here, because we do want to check even after a timeout if
5151 * characters are available. Needed for reading output of an 5157 * characters are available. Needed for reading output of an
5152 * external command after the process has finished. */ 5158 * external command after the process has finished. */
5153 goto select_eintr; 5159 goto select_eintr;
5160 }
5154 # endif 5161 # endif
5155 # ifdef __TANDEM 5162 # ifdef __TANDEM
5156 if (ret == -1 && errno == ENOTSUP) 5163 if (ret == -1 && errno == ENOTSUP)
5157 { 5164 {
5158 FD_ZERO(&rfds); 5165 FD_ZERO(&rfds);