From a2e1bcd176bbacf4f63727429383436a160c4c58 Mon Sep 17 00:00:00 2001 From: Jan Edmund Lazo Date: Fri, 16 Oct 2020 23:02:13 -0400 Subject: vim-patch:8.2.1219: symlink not followed if dirname ends in // MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Problem: Symlink not followed if dirname ends in //. Solution: Resolve symlink earlier. (Tomáš Janoušek, closes vim/vim#6454) https://github.com/vim/vim/commit/5966ea105ea86e52a734e04267956e11efffc92d --- src/nvim/testdir/test_swap.vim | 30 ++++++++++++++++++++++++++++++ 1 file changed, 30 insertions(+) (limited to 'src/nvim/testdir') diff --git a/src/nvim/testdir/test_swap.vim b/src/nvim/testdir/test_swap.vim index f440569d66..f27920d20f 100644 --- a/src/nvim/testdir/test_swap.vim +++ b/src/nvim/testdir/test_swap.vim @@ -334,4 +334,34 @@ func Test_swap_prompt_splitwin() call delete('Xfile1') endfunc +func Test_swap_symlink() + if !has("unix") + return + endif + + call writefile(['text'], 'Xtestfile') + silent !ln -s -f Xtestfile Xtestlink + + set dir=. + + " Test that swap file uses the name of the file when editing through a + " symbolic link (so that editing the file twice is detected) + edit Xtestlink + call assert_match('Xtestfile\.swp$', s:swapname()) + bwipe! + + call mkdir('Xswapdir') + exe 'set dir=' . getcwd() . '/Xswapdir//' + + " Check that this also works when 'directory' ends with '//' + edit Xtestlink + call assert_match('Xtestfile\.swp$', s:swapname()) + bwipe! + + set dir& + call delete('Xtestfile') + call delete('Xtestlink') + call delete('Xswapdir', 'rf') +endfunc + " vim: shiftwidth=2 sts=2 expandtab -- cgit