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 -- [email protected] -- 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    ///

--~--~---------~--~----~------------~-------~--~----~
You received this message from the "vim_dev" maillist.
For more information, visit http://www.vim.org/maillist.php
-~----------~----~----~----~------~----~------~--~---

Raspunde prin e-mail lui