win: executable(): fix relative path bug

Qualified (i.e. dot-prefixed) relative paths should only search CWD, not
$PATH.
This commit is contained in:
erw7 2019-01-17 16:05:57 +09:00 committed by Justin M. Keyes
parent d13803f64f
commit 519b93d236

View File

@ -242,8 +242,12 @@ bool os_can_exe(const char_u *name, char_u **abspath, bool use_path)
FUNC_ATTR_NONNULL_ARG(1)
{
bool no_path = !use_path || path_is_absolute(name);
#ifndef WIN32
#ifdef WIN32
// If the filename is "qualified" (relative or absolute) do not check $PATH.
no_path |= (name[0] == '.'
&& ((name[1] == '/' || name[1] == '\\')
|| (name[1] == '.' && (name[2] == '/' || name[2] == '\\'))));
#else
no_path |= (name[0] == '.'
&& (name[1] == '/' || (name[1] == '.' && name[2] == '/')));
#endif