On 2011-05-31, Fabian Greffrath wrote:
> Hi vim,
> 
> I have currently experienced crashes with vim binaries which got 
> compiled in MSYS, i.e. an UNIX-like environment, but executed in a 
> cmd.exe shell.
> 
> The MSYS compiler identifies itself as a UNIX compiler, i.e. it has 
> unix, __unix and __unix__ defined. In a UNIX environment, one can 
> safely expect the HOME variable to be present and point to a valid 
> location. This is what happens in misc1.c around line 3528.
> 
> However, programs compiled in the MSYS environment (and I believe the 
> same is true for CYGWIN as well) can offhand get executed from the 
> Windows cmd.exe shell as well, as long as the compatibility libraries 
> are available.
> 
> In the cmd.exe environment, though, the HOME variable is generally 
> unset. However, vim does not check if getenv("HOME") returns NULL in 
> this case, because it has been compiled in a different (i.e. UNIX) 
> environment, in which it might expect a valid return value. In the 
> end, vim.exe crashes.
> 
> Please do add another check to the "#ifdef UNIX" case in misc1.c to 
> see if HOME is defined and valid and reset it to a reasonable default 
> (maybe ".") if not.

FWIW, on a Unix system (Fedora 11), vim 7.3.189 seems to work fine
without HOME defined.

    $ unset HOME
    $ vim
    :echo "-".$HOME."-"
    --

Under what conditions does yours crash?

Regards,
Gary

-- 
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