mirror of
https://github.com/preservim/nerdtree.git
synced 2025-11-08 11:23:48 -05:00
Respect user's &shellslash setting in CopyNode and RemoveNode functions (#1150)
* Replace s:Path.Slash() with nerdtree#slash(). * Check the value of &shell when determining the slash under Windows. * Leave &shellslash unchanged when forming copy/delete commands. * Fix fold marker. * Update version number in change log. * Add abort attribute to nerdtree#slash() to satisfy Vim style guide. Co-authored-by: Phil Runninger <prunninger@vhtcx.com>
This commit is contained in:
@@ -247,7 +247,7 @@ function! s:Creator._pathForString(str)
|
||||
|
||||
"hack to get an absolute path if a relative path is given
|
||||
if dir =~# '^\.'
|
||||
let dir = getcwd() . g:NERDTreePath.Slash() . dir
|
||||
let dir = getcwd() . nerdtree#slash() . dir
|
||||
endif
|
||||
|
||||
"hack to prevent removing slash if dir is the root of the file system.
|
||||
|
||||
@@ -25,10 +25,10 @@ function! s:Path.AbsolutePathFor(pathStr)
|
||||
if l:prependWorkingDir
|
||||
let l:result = getcwd()
|
||||
|
||||
if l:result[-1:] ==# s:Path.Slash()
|
||||
if l:result[-1:] == nerdtree#slash()
|
||||
let l:result = l:result . a:pathStr
|
||||
else
|
||||
let l:result = l:result . s:Path.Slash() . a:pathStr
|
||||
let l:result = l:result . nerdtree#slash() . a:pathStr
|
||||
endif
|
||||
endif
|
||||
|
||||
@@ -614,23 +614,6 @@ function! s:Path.New(pathStr)
|
||||
return l:newPath
|
||||
endfunction
|
||||
|
||||
" FUNCTION: Path.Slash() {{{1
|
||||
" Return the path separator used by the underlying file system. Special
|
||||
" consideration is taken for the use of the 'shellslash' option on Windows
|
||||
" systems.
|
||||
function! s:Path.Slash()
|
||||
|
||||
if nerdtree#runningWindows()
|
||||
if exists('+shellslash') && &shellslash
|
||||
return '/'
|
||||
endif
|
||||
|
||||
return '\'
|
||||
endif
|
||||
|
||||
return '/'
|
||||
endfunction
|
||||
|
||||
" FUNCTION: Path.Resolve() {{{1
|
||||
" Invoke the vim resolve() function and return the result
|
||||
" This is necessary because in some versions of vim resolve() removes trailing
|
||||
@@ -815,7 +798,7 @@ function! s:Path._strForEdit()
|
||||
|
||||
" On Windows, the drive letter may be removed by "fnamemodify()". Add it
|
||||
" back, if necessary.
|
||||
if nerdtree#runningWindows() && l:result[0] ==# s:Path.Slash()
|
||||
if nerdtree#runningWindows() && l:result[0] == nerdtree#slash()
|
||||
let l:result = self.drive . l:result
|
||||
endif
|
||||
|
||||
@@ -830,14 +813,14 @@ endfunction
|
||||
|
||||
" FUNCTION: Path._strForGlob() {{{1
|
||||
function! s:Path._strForGlob()
|
||||
let lead = s:Path.Slash()
|
||||
let lead = nerdtree#slash()
|
||||
|
||||
"if we are running windows then slap a drive letter on the front
|
||||
if nerdtree#runningWindows()
|
||||
let lead = self.drive . '\'
|
||||
endif
|
||||
|
||||
let toReturn = lead . join(self.pathSegments, s:Path.Slash())
|
||||
let toReturn = lead . join(self.pathSegments, nerdtree#slash())
|
||||
|
||||
if !nerdtree#runningWindows()
|
||||
let toReturn = escape(toReturn, self._escChars())
|
||||
@@ -849,7 +832,7 @@ endfunction
|
||||
" Return the absolute pathname associated with this Path object. The pathname
|
||||
" returned is appropriate for the underlying file system.
|
||||
function! s:Path._str()
|
||||
let l:separator = s:Path.Slash()
|
||||
let l:separator = nerdtree#slash()
|
||||
let l:leader = l:separator
|
||||
|
||||
if nerdtree#runningWindows()
|
||||
|
||||
@@ -278,8 +278,8 @@ function! s:TreeDirNode._glob(pattern, all)
|
||||
else
|
||||
let l:pathSpec = escape(fnamemodify(self.path.str({'format': 'Glob'}), ':.'), ',')
|
||||
|
||||
" On Windows, the drive letter may be removed by fnamemodify().
|
||||
if nerdtree#runningWindows() && l:pathSpec[0] ==# g:NERDTreePath.Slash()
|
||||
" On Windows, the drive letter may be removed by "fnamemodify()".
|
||||
if nerdtree#runningWindows() && l:pathSpec[0] == nerdtree#slash()
|
||||
let l:pathSpec = self.path.drive . l:pathSpec
|
||||
endif
|
||||
endif
|
||||
|
||||
Reference in New Issue
Block a user