To: vim-dev@vim.org Subject: Patch 7.2.097 Fcc: outbox From: Bram Moolenaar Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 8bit ------------ Patch 7.2.097 Problem: "!xterm&" doesn't work when 'shell' is "bash". Solution: Ignore SIGHUP after calling setsid(). (Simon Schubert) Files: src/os_unix.c *** ../vim-7.2.096/src/os_unix.c Fri Nov 28 21:26:50 2008 --- src/os_unix.c Wed Feb 4 12:09:55 2009 *************** *** 3950,3956 **** --- 3950,3966 ---- * children can be kill()ed. Don't do this when using pipes, * because stdin is not a tty, we would lose /dev/tty. */ if (p_stmp) + { (void)setsid(); + # if defined(SIGHUP) + /* When doing "!xterm&" and 'shell' is bash: the shell + * will exit and send SIGHUP to all processes in its + * group, killing the just started process. Ignore SIGHUP + * to avoid that. (suggested by Simon Schubert) + */ + signal(SIGHUP, SIG_IGN); + # endif + } # endif # ifdef FEAT_GUI if (pty_slave_fd >= 0) *** ../vim-7.2.096/src/version.c Wed Feb 4 13:13:42 2009 --- src/version.c Wed Feb 4 14:16:37 2009 *************** *** 678,679 **** --- 678,681 ---- { /* Add new patch number below this line */ + /**/ + 97, /**/ -- It was recently discovered that research causes cancer in rats. /// 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 ///