To: vim-dev@vim.org
Subject: Patch 7.3.023
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.023
Problem:    External program may hang when it tries to write to the tty.
Solution:   Don't close the slave tty until after the child exits. (Nikola
	    Knezevic)
Files:	    src/os_unix.c


*** ../vim-7.3.022/src/os_unix.c	2010-09-21 22:09:28.000000000 +0200
--- src/os_unix.c	2010-10-13 16:17:33.000000000 +0200
***************
*** 4168,4174 ****
  # ifdef FEAT_GUI
  		if (pty_master_fd >= 0)
  		{
- 		    close(pty_slave_fd);	/* close slave side of pty */
  		    fromshell_fd = pty_master_fd;
  		    toshell_fd = dup(pty_master_fd);
  		}
--- 4168,4173 ----
***************
*** 4637,4642 ****
--- 4636,4649 ----
  		    break;
  	    }
  
+ # ifdef FEAT_GUI
+ 	    /* Close slave side of pty.  Only do this after the child has
+ 	     * exited, otherwise the child may hang when it tries to write on
+ 	     * the pty. */
+ 	    if (pty_master_fd >= 0)
+ 		close(pty_slave_fd);
+ # endif
+ 
  	    /* Make sure the child that writes to the external program is
  	     * dead. */
  	    if (wpid > 0)
*** ../vim-7.3.022/src/version.c	2010-10-13 14:05:29.000000000 +0200
--- src/version.c	2010-10-13 16:20:48.000000000 +0200
***************
*** 716,717 ****
--- 716,719 ----
  {   /* Add new patch number below this line */
+ /**/
+     23,
  /**/

-- 
       We're knights of the Round Table
       Our shows are formidable
       But many times
       We're given rhymes
       That are quite unsingable
       We're opera mad in Camelot
       We sing from the diaphragm a lot.
                 "Monty Python and the Holy Grail" PYTHON (MONTY) PICTURES LTD

 /// Bram Moolenaar -- Bram@Moolenaar.net -- http://www.Moolenaar.net   \\\
///        sponsor Vim, vote for features -- http://www.Vim.org/sponsor/ \\\
\\\        download, build and distribute -- http://www.A-A-P.org        ///
 \\\            help me help AIDS victims -- http://ICCF-Holland.org    ///
