vim-patch:8.2.3824: no ASAN support for MSVC

Problem:    No ASAN support for MSVC.
Solution:   Add ASAN support and fix a coupld of uncovered problems. (Yegappan
            Lakshmanan, closes vim/vim#9357)
6df0f2759d
This commit is contained in:
zeertzjq 2022-02-07 06:48:10 +08:00
parent 53e4434c72
commit bfc11e9c64
2 changed files with 6 additions and 3 deletions

View File

@ -1521,7 +1521,7 @@ void simplify_filename(char_u *filename)
p = filename; p = filename;
#ifdef BACKSLASH_IN_FILENAME #ifdef BACKSLASH_IN_FILENAME
if (p[1] == ':') { // skip "x:" if (p[0] != NUL && p[1] == ':') { // skip "x:"
p += 2; p += 2;
} }
#endif #endif
@ -2402,9 +2402,11 @@ static int path_to_absolute(const char_u *fname, char_u *buf, size_t len, int fo
int path_is_absolute(const char_u *fname) int path_is_absolute(const char_u *fname)
{ {
#ifdef WIN32 #ifdef WIN32
if (*fname == NUL) {
return true;
}
// A name like "d:/foo" and "//server/share" is absolute // A name like "d:/foo" and "//server/share" is absolute
return ((isalpha(fname[0]) && fname[1] == ':' return ((isalpha(fname[0]) && fname[1] == ':' && vim_ispathsep_nocolon(fname[2]))
&& vim_ispathsep_nocolon(fname[2]))
|| (vim_ispathsep_nocolon(fname[0]) && fname[0] == fname[1])); || (vim_ispathsep_nocolon(fname[0]) && fname[0] == fname[1]));
#else #else
// UNIX: This just checks if the file name starts with '/' or '~'. // UNIX: This just checks if the file name starts with '/' or '~'.

View File

@ -90,6 +90,7 @@ func Test_fnamemodify_er()
call assert_equal('b.c', fnamemodify('a.b.c.d.e', ':r:r:e:e:e')) call assert_equal('b.c', fnamemodify('a.b.c.d.e', ':r:r:e:e:e'))
call assert_equal('b.c', fnamemodify('a.b.c.d.e', ':r:r:e:e:e:e')) call assert_equal('b.c', fnamemodify('a.b.c.d.e', ':r:r:e:e:e:e'))
call assert_equal('', fnamemodify('', ':p:t'))
call assert_equal('', fnamemodify(v:_null_string, v:_null_string)) call assert_equal('', fnamemodify(v:_null_string, v:_null_string))
endfunc endfunc