vim-patch:8.1.1791: 'completeslash' also applies to globpath()

Problem:    'completeslash' also applies to globpath().
Solution:   Add the WILD_IGNORE_COMPLETESLASH flag. (test by Yasuhiro
            Matsumoto, closes vim/vim#4760)
This commit is contained in:
skippi 2020-10-25 18:48:41 -05:00
parent c203f89ace
commit f8fd3d44ac
3 changed files with 11 additions and 8 deletions

View File

@ -4007,7 +4007,7 @@ static void f_glob(typval_T *argvars, typval_T *rettv, FunPtr fptr)
/// "globpath()" function
static void f_globpath(typval_T *argvars, typval_T *rettv, FunPtr fptr)
{
int flags = 0; // Flags for globpath.
int flags = WILD_IGNORE_COMPLETESLASH; // Flags for globpath.
bool error = false;
// Return a string, or a list if the optional third argument is non-zero.

View File

@ -4990,7 +4990,7 @@ ExpandFromContext (
char_u *pat,
int *num_file,
char_u ***file,
int options /* EW_ flags */
int options // WILD_ flags
)
{
regmatch_T regmatch;
@ -5053,7 +5053,7 @@ ExpandFromContext (
if (free_pat)
xfree(pat);
#ifdef BACKSLASH_IN_FILENAME
if (p_csl[0] != NUL) {
if (p_csl[0] != NUL && (options & WILD_IGNORE_COMPLETESLASH) == 0) {
for (int i = 0; i < *num_file; i++) {
char_u *ptr = (*file)[i];
while (*ptr != NUL) {

View File

@ -367,17 +367,15 @@ endfunc
" Test for insert path completion with completeslash option
func Test_ins_completeslash()
if !has('win32')
return
endif
CheckMSWindows
call mkdir('Xdir')
let orig_shellslash = &shellslash
set cpt&
new
set noshellslash
set completeslash=
@ -408,7 +406,12 @@ func Test_ins_completeslash()
%bw!
call delete('Xdir', 'rf')
set noshellslash
set completeslash=slash
call assert_true(stridx(globpath(&rtp, 'syntax/*.vim', 1, 1)[0], '\') != -1)
let &shellslash = orig_shellslash
set completeslash=
endfunc
func Test_pum_with_folds_two_tabs()