To: vim-dev@vim.org Subject: Patch 7.3.023 Fcc: outbox From: Bram Moolenaar 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 ///