Loading ...
Sorry, an error occurred while loading the content.

Patch 7.3.295

Expand Messages
  • Bram Moolenaar
    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
    Message 1 of 1 , Sep 7, 2011
    • 0 Attachment
      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@... -- 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 ///

      --
      You received this message from the "vim_dev" maillist.
      Do not top-post! Type your reply below the text you are replying to.
      For more information, visit http://www.vim.org/maillist.php
    Your message has been successfully submitted and would be delivered to recipients shortly.