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