]>
Commit | Line | Data |
---|---|---|
59ab3540 AM |
1 | To: vim_dev@googlegroups.com |
2 | Subject: Patch 7.3.295 | |
3 | Fcc: outbox | |
4 | From: Bram Moolenaar <Bram@moolenaar.net> | |
5 | Mime-Version: 1.0 | |
6 | Content-Type: text/plain; charset=UTF-8 | |
7 | Content-Transfer-Encoding: 8bit | |
8 | ------------ | |
9 | ||
10 | Patch 7.3.295 | |
11 | Problem: When filtering text with an external command Vim may not read all | |
12 | the output. | |
13 | Solution: When select() is interrupted loop and try again. (James Vega) | |
14 | Files: src/os_unix.c | |
15 | ||
16 | ||
17 | *** ../vim-7.3.294/src/os_unix.c 2011-08-04 20:31:50.000000000 +0200 | |
18 | --- src/os_unix.c 2011-09-07 13:34:09.000000000 +0200 | |
19 | *************** | |
20 | *** 4819,4825 **** | |
21 | ||
22 | /* | |
23 | * Wait "msec" msec until a character is available from file descriptor "fd". | |
24 | ! * Time == -1 will block forever. | |
25 | * When a GUI is being used, this will not be used for input -- webb | |
26 | * Returns also, when a request from Sniff is waiting -- toni. | |
27 | * Or when a Linux GPM mouse event is waiting. | |
28 | --- 4819,4826 ---- | |
29 | ||
30 | /* | |
31 | * Wait "msec" msec until a character is available from file descriptor "fd". | |
32 | ! * "msec" == 0 will check for characters once. | |
33 | ! * "msec" == -1 will block until a character is available. | |
34 | * When a GUI is being used, this will not be used for input -- webb | |
35 | * Returns also, when a request from Sniff is waiting -- toni. | |
36 | * Or when a Linux GPM mouse event is waiting. | |
37 | *************** | |
38 | *** 5057,5063 **** | |
39 | /* | |
40 | * Select on ready for reading and exceptional condition (end of file). | |
41 | */ | |
42 | ! FD_ZERO(&rfds); /* calls bzero() on a sun */ | |
43 | FD_ZERO(&efds); | |
44 | FD_SET(fd, &rfds); | |
45 | # if !defined(__QNX__) && !defined(__CYGWIN32__) | |
46 | --- 5058,5065 ---- | |
47 | /* | |
48 | * Select on ready for reading and exceptional condition (end of file). | |
49 | */ | |
50 | ! select_eintr: | |
51 | ! FD_ZERO(&rfds); | |
52 | FD_ZERO(&efds); | |
53 | FD_SET(fd, &rfds); | |
54 | # if !defined(__QNX__) && !defined(__CYGWIN32__) | |
55 | *************** | |
56 | *** 5117,5122 **** | |
57 | --- 5119,5132 ---- | |
58 | # else | |
59 | ret = select(maxfd + 1, &rfds, NULL, &efds, tvp); | |
60 | # endif | |
61 | + # ifdef EINTR | |
62 | + if (ret == -1 && errno == EINTR) | |
63 | + /* Interrupted by a signal, need to try again. We ignore msec | |
64 | + * here, because we do want to check even after a timeout if | |
65 | + * characters are available. Needed for reading output of an | |
66 | + * external command after the process has finished. */ | |
67 | + goto select_eintr; | |
68 | + # endif | |
69 | # ifdef __TANDEM | |
70 | if (ret == -1 && errno == ENOTSUP) | |
71 | { | |
72 | *************** | |
73 | *** 5124,5130 **** | |
74 | FD_ZERO(&efds); | |
75 | ret = 0; | |
76 | } | |
77 | ! #endif | |
78 | # ifdef FEAT_MZSCHEME | |
79 | if (ret == 0 && mzquantum_used) | |
80 | /* loop if MzThreads must be scheduled and timeout occurred */ | |
81 | --- 5134,5140 ---- | |
82 | FD_ZERO(&efds); | |
83 | ret = 0; | |
84 | } | |
85 | ! # endif | |
86 | # ifdef FEAT_MZSCHEME | |
87 | if (ret == 0 && mzquantum_used) | |
88 | /* loop if MzThreads must be scheduled and timeout occurred */ | |
89 | *** ../vim-7.3.294/src/version.c 2011-09-05 20:13:37.000000000 +0200 | |
90 | --- src/version.c 2011-09-07 14:05:05.000000000 +0200 | |
91 | *************** | |
92 | *** 711,712 **** | |
93 | --- 711,714 ---- | |
94 | { /* Add new patch number below this line */ | |
95 | + /**/ | |
96 | + 295, | |
97 | /**/ | |
98 | ||
99 | -- | |
100 | "You're fired." (1980) | |
101 | "You're laid off." (1985) | |
102 | "You're downsized." (1990) | |
103 | "You're rightsized." (1992) | |
104 | (Scott Adams - The Dilbert principle) | |
105 | ||
106 | /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\ | |
107 | /// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\ | |
108 | \\\ an exciting new programming language -- http://www.Zimbu.org /// | |
109 | \\\ help me help AIDS victims -- http://ICCF-Holland.org /// |