summaryrefslogtreecommitdiff
path: root/source/ap/vim/patches/7.3.295
diff options
context:
space:
mode:
Diffstat (limited to 'source/ap/vim/patches/7.3.295')
-rw-r--r--source/ap/vim/patches/7.3.295109
1 files changed, 109 insertions, 0 deletions
diff --git a/source/ap/vim/patches/7.3.295 b/source/ap/vim/patches/7.3.295
new file mode 100644
index 00000000..fad7ea3e
--- /dev/null
+++ b/source/ap/vim/patches/7.3.295
@@ -0,0 +1,109 @@
+To: vim_dev@googlegroups.com
+Subject: Patch 7.3.295
+Fcc: outbox
+From: Bram Moolenaar <Bram@moolenaar.net>
+Mime-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+------------
+
+Patch 7.3.295
+Problem: When filtering text with an external command Vim may not read all
+ the output.
+Solution: When select() is interrupted loop and try again. (James Vega)
+Files: src/os_unix.c
+
+
+*** ../vim-7.3.294/src/os_unix.c 2011-08-04 20:31:50.000000000 +0200
+--- src/os_unix.c 2011-09-07 13:34:09.000000000 +0200
+***************
+*** 4819,4825 ****
+
+ /*
+ * Wait "msec" msec until a character is available from file descriptor "fd".
+! * Time == -1 will block forever.
+ * When a GUI is being used, this will not be used for input -- webb
+ * Returns also, when a request from Sniff is waiting -- toni.
+ * Or when a Linux GPM mouse event is waiting.
+--- 4819,4826 ----
+
+ /*
+ * Wait "msec" msec until a character is available from file descriptor "fd".
+! * "msec" == 0 will check for characters once.
+! * "msec" == -1 will block until a character is available.
+ * When a GUI is being used, this will not be used for input -- webb
+ * Returns also, when a request from Sniff is waiting -- toni.
+ * Or when a Linux GPM mouse event is waiting.
+***************
+*** 5057,5063 ****
+ /*
+ * Select on ready for reading and exceptional condition (end of file).
+ */
+! FD_ZERO(&rfds); /* calls bzero() on a sun */
+ FD_ZERO(&efds);
+ FD_SET(fd, &rfds);
+ # if !defined(__QNX__) && !defined(__CYGWIN32__)
+--- 5058,5065 ----
+ /*
+ * Select on ready for reading and exceptional condition (end of file).
+ */
+! select_eintr:
+! FD_ZERO(&rfds);
+ FD_ZERO(&efds);
+ FD_SET(fd, &rfds);
+ # if !defined(__QNX__) && !defined(__CYGWIN32__)
+***************
+*** 5117,5122 ****
+--- 5119,5132 ----
+ # else
+ ret = select(maxfd + 1, &rfds, NULL, &efds, tvp);
+ # endif
++ # ifdef EINTR
++ if (ret == -1 && errno == EINTR)
++ /* Interrupted by a signal, need to try again. We ignore msec
++ * here, because we do want to check even after a timeout if
++ * characters are available. Needed for reading output of an
++ * external command after the process has finished. */
++ goto select_eintr;
++ # endif
+ # ifdef __TANDEM
+ if (ret == -1 && errno == ENOTSUP)
+ {
+***************
+*** 5124,5130 ****
+ FD_ZERO(&efds);
+ ret = 0;
+ }
+! #endif
+ # ifdef FEAT_MZSCHEME
+ if (ret == 0 && mzquantum_used)
+ /* loop if MzThreads must be scheduled and timeout occurred */
+--- 5134,5140 ----
+ FD_ZERO(&efds);
+ ret = 0;
+ }
+! # endif
+ # ifdef FEAT_MZSCHEME
+ if (ret == 0 && mzquantum_used)
+ /* loop if MzThreads must be scheduled and timeout occurred */
+*** ../vim-7.3.294/src/version.c 2011-09-05 20:13:37.000000000 +0200
+--- src/version.c 2011-09-07 14:05:05.000000000 +0200
+***************
+*** 711,712 ****
+--- 711,714 ----
+ { /* Add new patch number below this line */
++ /**/
++ 295,
+ /**/
+
+--
+"You're fired." (1980)
+"You're laid off." (1985)
+"You're downsized." (1990)
+"You're rightsized." (1992)
+ (Scott Adams - The Dilbert principle)
+
+ /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net \\\
+/// sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
+\\\ an exciting new programming language -- http://www.Zimbu.org ///
+ \\\ help me help AIDS victims -- http://ICCF-Holland.org ///