diff options
author | vimboss <devnull@localhost> | 2009-02-04 13:19:42 +0000 |
---|---|---|
committer | vimboss <devnull@localhost> | 2009-02-04 13:19:42 +0000 |
commit | e7b6bcc8d80a6993996ef369c6046afbf686701c (patch) | |
tree | d0af3f7de63b746219caade7f21334fe6ac0b07f | |
parent | f3b78a877a895119bebc54b250f9b5967bb74843 (diff) | |
download | vim-e7b6bcc8d80a6993996ef369c6046afbf686701c.tar.gz |
-rw-r--r-- | src/os_unix.c | 10 | ||||
-rw-r--r-- | src/version.c | 2 |
2 files changed, 12 insertions, 0 deletions
diff --git a/src/os_unix.c b/src/os_unix.c index 9d6f6cb6..27ee65e2 100644 --- a/src/os_unix.c +++ b/src/os_unix.c @@ -3950,7 +3950,17 @@ mch_call_shell(cmd, options) * 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) diff --git a/src/version.c b/src/version.c index 12905af7..d5e44843 100644 --- a/src/version.c +++ b/src/version.c @@ -677,6 +677,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ /**/ + 97, +/**/ 96, /**/ 95, |