To: vim_dev@googlegroups.com Subject: Patch 7.3.268 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ------------ Patch 7.3.268 Problem: Vim freezes when executing an external command with zsh. Solution: Use O_NOCTTY both in the master and slave. (Bjorn Winckler) Files: src/os_unix.c *** ../vim-7.3.267/src/os_unix.c 2011-07-07 16:20:45.000000000 +0200 --- src/os_unix.c 2011-08-04 19:06:14.000000000 +0200 *************** *** 3889,3899 **** if (p_guipty && !(options & (SHELL_READ|SHELL_WRITE))) { pty_master_fd = OpenPTY(&tty_name); /* open pty */ ! if (pty_master_fd >= 0 && ((pty_slave_fd = ! open(tty_name, O_RDWR | O_EXTRA, 0)) < 0)) { ! close(pty_master_fd); ! pty_master_fd = -1; } } /* --- 3889,3909 ---- if (p_guipty && !(options & (SHELL_READ|SHELL_WRITE))) { pty_master_fd = OpenPTY(&tty_name); /* open pty */ ! if (pty_master_fd >= 0) { ! /* Leaving out O_NOCTTY may lead to waitpid() always returning ! * 0 on Mac OS X 10.7 thereby causing freezes. Let's assume ! * adding O_NOCTTY always works when defined. */ ! #ifdef O_NOCTTY ! pty_slave_fd = open(tty_name, O_RDWR | O_NOCTTY | O_EXTRA, 0); ! #else ! pty_slave_fd = open(tty_name, O_RDWR | O_EXTRA, 0); ! #endif ! if (pty_slave_fd < 0) ! { ! close(pty_master_fd); ! pty_master_fd = -1; ! } } } /* *** ../vim-7.3.267/src/version.c 2011-08-04 19:34:55.000000000 +0200 --- src/version.c 2011-08-04 19:36:00.000000000 +0200 *************** *** 711,712 **** --- 711,714 ---- { /* Add new patch number below this line */ + /**/ + 268, /**/ -- Mental Floss prevents moral decay! /// 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 ///