mirror of
https://github.com/neovim/neovim.git
synced 2026-05-26 06:48:27 +00:00
vim-patch:9.2.0037: netrw: need better tests for absolute paths
Problem: netrw: need better tests for absolute paths
Solution: Use absolutepath(), instead of regex test (Miguel Barro).
closes: vim/vim#19477
bd1dc5b1a6
Cherry-pick a typo fix from latest Vim.
Co-authored-by: Miguel Barro <miguel.barro@live.com>
This commit is contained in:
@@ -19,6 +19,7 @@
|
||||
" 2025 Dec 26 by Vim Project fix use of g:netrw_cygwin #19015
|
||||
" 2026 Jan 19 by Vim Project do not create swapfiles #18854
|
||||
" 2026 Feb 15 by Vim Project fix global variable initialization for MS-Windows #19287
|
||||
" 2026 Feb 21 by Vim Project better absolute path detection on MS-Windows #19477
|
||||
" Copyright: Copyright (C) 2016 Charles E. Campbell {{{1
|
||||
" Permission is hereby granted to use and distribute this code,
|
||||
" with or without modifications, provided that this copyright
|
||||
@@ -3239,7 +3240,7 @@ function s:NetrwFile(fname)
|
||||
endif
|
||||
|
||||
if !g:netrw_cygwin && has("win32")
|
||||
if fname =~ '^\' || fname =~ '^\a:\'
|
||||
if isabsolutepath(fname)
|
||||
" windows, but full path given
|
||||
let ret= fname
|
||||
else
|
||||
|
||||
@@ -113,7 +113,6 @@ function Test_NetrwMarkFileCopy_SameDir(dir = $HOME, symlink = 0) abort
|
||||
endif
|
||||
endfunction
|
||||
|
||||
|
||||
" Test file copy operations via s:NetrwMarkFileMove()
|
||||
function Test_NetrwMarkFileMove(source_dir, target_dir, marked_files) abort
|
||||
" set up
|
||||
@@ -128,6 +127,12 @@ function Test_NetrwMarkFileMove(source_dir, target_dir, marked_files) abort
|
||||
bw
|
||||
endfunction
|
||||
|
||||
" Test how netrw fixes paths according with settings
|
||||
" (g:netrw_keepdir, g:netrw_cygwin, tree style ...)
|
||||
function Test_NetrwFile(fname) abort
|
||||
return s:NetrwFile(a:fname)
|
||||
endfunction
|
||||
|
||||
" }}}
|
||||
END
|
||||
|
||||
@@ -310,6 +315,30 @@ func Test_netrw_wipe_empty_buffer_fastpath()
|
||||
unlet! netrw_fastbrowse
|
||||
endfunction
|
||||
|
||||
" Test UNC paths on windows
|
||||
func Test_netrw_check_UNC_paths()
|
||||
CheckMSWindows
|
||||
|
||||
let test_paths = [
|
||||
\ '\\Server2\Share\Test\Foo.txt',
|
||||
\ '//Server2/Share/Test/Foo.txt',
|
||||
\ '\\Server2\Share\Test\',
|
||||
\ '//Server2/Share/Test/',
|
||||
\ '\\wsl.localhost\Ubuntu\home\user\_vimrc',
|
||||
\ '//wsl.localhost/Ubuntu/home/user/_vimrc',
|
||||
\ '\\wsl.localhost\Ubuntu\home\user',
|
||||
\ '//wsl.localhost/Ubuntu/home/user']
|
||||
|
||||
" The paths must be interpreted as absolute ones
|
||||
for path in test_paths
|
||||
call assert_equal(
|
||||
\ path,
|
||||
\ Test_NetrwFile(path),
|
||||
\ $"UNC path: {path} misinterpreted")
|
||||
endfor
|
||||
|
||||
endfunction
|
||||
|
||||
" ---------------------------------
|
||||
" Testing file management functions
|
||||
" ---------------------------------
|
||||
|
||||
Reference in New Issue
Block a user