Fabian Greffrath wrote:

> Am 02.06.2011 17:07, schrieb Bram Moolenaar:
> > Where does Vim crash when homedir is NULL?  That should be fixed.
> 
> I have investigated this crash a bit further and tailored it down to a 
> completely unrelated issue. It is just that vim takes a completely 
> different code path depending on whether a HOME directory is set and 
> whether it succeeds to call a shell or not (i.e. sh is in PATH). this 
> is why I first suspected the missing HOME variable to be the culprit, 
> but it isn't.
> 
> Remember, I had the problem that vim compiled in an MSYS environment 
> crashes when started from a cmd.exe shell when both (a) HOME is not 
> set (which is quite common in a cmd.exe shell) and (b) sh.exe is found 
> in PATH (i.e. it works with zsh-nt but not with MSYS's bash).
> 
> I can perfectly start vim under the aforementioned conditions if I 
> comment out the line calling "fclose(stderr);" in src/os_unix.c around 
> line 3994, that's function mch_call_shell() with (!pipe_error) && (pid 
> == 0). The code block which contains the malicious line is introduced 
> with the following paragraph:
> 
> >  * Don't want to show any message from the shell.  Can't just
> >  * close stdout and stderr though, because some systems will
> >  * break if you try to write to them after that, so we must
> >  * use dup() to replace them with something else -- webb
> >  * Connect stdin to /dev/null too, so ":n `cat`" doesn't hang,
> >  * waiting for input.
> 
> And this is exactly what happens, both stdout and stderr are closed 
> and the system breaks afterwards. The following calls to dup() aren't 
> even reached. How can I circumvent this breakage? It seems that 
> cmd.exe needs to have at least one file decriptor open?

Hmm, keep in mind you are using code written for Unix on MS-Windows.
That's never going to work perfectly.

Perhaps a few #ifdefs will make the code work for MS-Windows.  I do hope
we can keep that to a minimum though, otherwise it gets messy.

-- 
>From "know your smileys":
 2B|^2B   Message from Shakespeare

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

-- 
You received this message from the "vim_dev" maillist.
Do not top-post! Type your reply below the text you are replying to.
For more information, visit http://www.vim.org/maillist.php

Raspunde prin e-mail lui