]> git.pld-linux.org Git - packages/vim.git/blob - 7.3.295
- up to 7.3.600
[packages/vim.git] / 7.3.295
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    ///
This page took 0.049385 seconds and 3 git commands to generate.