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,13 +5799,17 @@ 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) | ||||
|    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 | ||||
|  | ||||
		Reference in New Issue
	
	Block a user