Mercurial > vim
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); |