runtime(netrw): glob() on windows fails with [] in directory name
fixes: #14952 closes: #14991 Signed-off-by: Christian Brabandt <cb@256bit.org>
This commit is contained in:
@ -14,6 +14,7 @@
|
||||
" 2024 May 10 by Vim Project: recursively delete directories by default
|
||||
" 2024 May 13 by Vim Project: prefer scp over pscp
|
||||
" 2024 Jun 04 by Vim Project: set bufhidden if buffer changed, nohidden is set and buffer shall be switched (#14915)
|
||||
" 2024 Jun 13 by Vim Project: glob() on Windows fails when a directory name contains [] (#14952)
|
||||
" Former Maintainer: Charles E Campbell
|
||||
" GetLatestVimScripts: 1075 1 :AutoInstall: netrw.vim
|
||||
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
|
||||
@ -5798,16 +5799,20 @@ fun! s:NetrwGlob(direntry,expr,pare)
|
||||
let filelist= w:netrw_treedict[a:direntry]
|
||||
endif
|
||||
let w:netrw_liststyle= keep_liststyle
|
||||
elseif v:version > 704 || (v:version == 704 && has("patch656"))
|
||||
let filelist= glob(s:ComposePath(fnameescape(a:direntry),a:expr),0,1,1)
|
||||
if a:pare
|
||||
let filelist= map(filelist,'substitute(v:val, "^.*/", "", "")')
|
||||
endif
|
||||
else
|
||||
let filelist= glob(s:ComposePath(fnameescape(a:direntry),a:expr),0,1)
|
||||
if a:pare
|
||||
let filelist= map(filelist,'substitute(v:val, "^.*/", "", "")')
|
||||
endif
|
||||
let path= s:ComposePath(fnameescape(a:direntry),a:expr)
|
||||
if has("win64")
|
||||
" escape [ so it is not detected as wildcard character, see :h wildcard
|
||||
let path= substitute(path, '[', '[[]', 'g')
|
||||
endif
|
||||
if v:version > 704 || (v:version == 704 && has("patch656"))
|
||||
let filelist= glob(path,0,1,1)
|
||||
else
|
||||
let filelist= glob(path,0,1)
|
||||
endif
|
||||
if a:pare
|
||||
let filelist= map(filelist,'substitute(v:val, "^.*/", "", "")')
|
||||
endif
|
||||
endif
|
||||
" call Dret("s:NetrwGlob ".string(filelist))
|
||||
return filelist
|
||||
|
||||
Reference in New Issue
Block a user