vim-patch:8.2.4671: 'wildignorecase' is sometimes not used for glob() (#20165)

Problem:    'wildignorecase' is sometimes not used for glob().
Solution:   Also use 'wildignorecase' when there are no wildcards.
            (closes vim/vim#10066, closes vim/vim#8350)
a3157a476b
This commit is contained in:
zeertzjq 2022-09-12 19:09:23 +08:00 committed by GitHub
parent 2ea6584a1b
commit a48e42a29d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 6 deletions

View File

@ -1272,12 +1272,12 @@ int gen_expand_wildcards(int num_pat, char **pat, int *num_file, char ***file, i
}
}
// If there are wildcards: Expand file names and add each match to
// the list. If there is no match, and EW_NOTFOUND is given, add
// the pattern.
// If there are no wildcards: Add the file name if it exists or
// when EW_NOTFOUND is given.
if (path_has_exp_wildcard(p)) {
// If there are wildcards or case-insensitive expansion is
// required: Expand file names and add each match to the list. If
// there is no match, and EW_NOTFOUND is given, add the pattern.
// Otherwise: Add the file name if it exists or when EW_NOTFOUND is
// given.
if (path_has_exp_wildcard(p) || (flags & EW_ICASE)) {
if ((flags & EW_PATH)
&& !path_is_absolute(p)
&& !(p[0] == '.'

View File

@ -2026,6 +2026,8 @@ func Test_glob()
" Sort output of glob() otherwise we end up with different
" ordering depending on whether file system is case-sensitive.
call assert_equal(['XGLOB2', 'Xglob1'], sort(glob('Xglob[12]', 0, 1)))
" wildignorecase shall be applied even when the pattern contains no wildcards.
call assert_equal('XGLOB2', glob('xglob2'))
set wildignorecase&
call delete('Xglob1')