patch 9.0.1972: win32: missing '**' expansion test

Problem:  win32: missing '**' expansion test (after v9.0.1947)
Solution: Add test for MS-Windows

win32: Add "**" test

Vim supports "**" on MS-Windows. However, it is not tested by
`Test_glob_extended_bash`.

Unlike Unix, it doesn't use 'shell' and doesn't support {,} expansion.
So, I added as a separate test.

related: #13205
closes: #13250

Signed-off-by: Christian Brabandt <cb@256bit.org>
Co-authored-by: Ken Takata <kentkt@csc.jp>
This commit is contained in:
Ken Takata
2023-10-02 21:31:31 +02:00
committed by Christian Brabandt
parent f59cbefd0a
commit 4a1ad55564
3 changed files with 22 additions and 2 deletions

View File

@ -386,8 +386,8 @@ is to use "path\[[]abc]", this matches the file "path\[abc]".
*starstar-wildcard* *starstar-wildcard*
Expanding "**" is possible on Unix, Win32, macOS and a few other systems (but Expanding "**" is possible on Unix, Win32, macOS and a few other systems (but
it may depend on your 'shell' setting. It's known to work correctly for zsh; for it may depend on your 'shell' setting on Unix and macOS. It's known to work
bash this requires at least bash version >= 4.X). correctly for zsh; for bash this requires at least bash version >= 4.X).
This allows searching a directory tree. This goes up to 100 directories deep. This allows searching a directory tree. This goes up to 100 directories deep.
Note there are some commands where this works slightly differently, see Note there are some commands where this works slightly differently, see
|file-searching|. |file-searching|.

View File

@ -3647,4 +3647,22 @@ func Test_glob_extended_bash()
let &shell=_shell let &shell=_shell
endfunc endfunc
" Test for glob() with extended patterns (MS-Windows)
" Vim doesn't use 'shell' to expand wildcards on MS-Windows.
" Unlike bash, it doesn't support {,} expansion.
func Test_glob_extended_mswin()
CheckMSWindows
call mkdir('Xtestglob/foo/bar/src', 'p')
call writefile([], 'Xtestglob/foo/bar/src/foo.sh')
call writefile([], 'Xtestglob/foo/bar/src/foo.h')
call writefile([], 'Xtestglob/foo/bar/src/foo.cpp')
" Sort output of glob() otherwise we end up with different
" ordering depending on whether file system is case-sensitive.
let expected = ['Xtestglob/foo/bar/src/foo.cpp', 'Xtestglob/foo/bar/src/foo.h', 'Xtestglob/foo/bar/src/foo.sh']
call assert_equal(expected, sort(glob('Xtestglob/**/foo.*', 0, 1)))
call delete('Xtestglob', 'rf')
endfunc
" vim: shiftwidth=2 sts=2 expandtab " vim: shiftwidth=2 sts=2 expandtab

View File

@ -704,6 +704,8 @@ static char *(features[]) =
static int included_patches[] = static int included_patches[] =
{ /* Add new patch number below this line */ { /* Add new patch number below this line */
/**/
1972,
/**/ /**/
1971, 1971,
/**/ /**/