mirror of
https://github.com/neovim/neovim.git
synced 2024-12-24 13:15:09 -07:00
vim-patch:7.4.1108 (#4872)
Problem: Expanding "~" halfway a file name.
Solution: Handle the file name as one name. (Marco Hinz) Add a test.
Closes vim/vim#564.
58adb14739
This commit is contained in:
parent
2d9c7dd840
commit
667c1dc4de
@ -1378,7 +1378,7 @@ find_file_in_path_option (
|
||||
/* copy file name into NameBuff, expanding environment variables */
|
||||
save_char = ptr[len];
|
||||
ptr[len] = NUL;
|
||||
expand_env(ptr, NameBuff, MAXPATHL);
|
||||
expand_env_esc(ptr, NameBuff, MAXPATHL, false, true, NULL);
|
||||
ptr[len] = save_char;
|
||||
|
||||
xfree(ff_file_to_find);
|
||||
|
@ -585,7 +585,7 @@ static int included_patches[] = {
|
||||
// 1111,
|
||||
1110,
|
||||
// 1109 NA
|
||||
// 1108,
|
||||
1108,
|
||||
1107,
|
||||
// 1106 NA
|
||||
1105,
|
||||
|
@ -1,37 +0,0 @@
|
||||
-- Test for expanding file names
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local clear, feed = helpers.clear, helpers.feed
|
||||
local execute = helpers.execute
|
||||
local curbuf_contents = helpers.curbuf_contents
|
||||
local eq = helpers.eq
|
||||
|
||||
describe('expand file name', function()
|
||||
setup(clear)
|
||||
|
||||
it('is working', function()
|
||||
execute('!mkdir Xdir1')
|
||||
execute('!mkdir Xdir2')
|
||||
execute('!mkdir Xdir3')
|
||||
execute('cd Xdir3')
|
||||
execute('!mkdir Xdir4')
|
||||
execute('cd ..')
|
||||
execute('w Xdir1/file')
|
||||
execute('w Xdir3/Xdir4/file')
|
||||
execute('n Xdir?/*/file')
|
||||
|
||||
-- Yank current file path to @a register
|
||||
feed('i<C-R>%<Esc>V"ad')
|
||||
|
||||
-- Put @a and current file path in the current buffer
|
||||
execute('n! Xdir?/*/nofile')
|
||||
feed('V"ap')
|
||||
feed('o<C-R>%<Esc>')
|
||||
|
||||
eq("Xdir3/Xdir4/file\nXdir?/*/nofile", curbuf_contents())
|
||||
end)
|
||||
|
||||
teardown(function()
|
||||
os.execute('rm -rf Xdir1 Xdir2 Xdir3')
|
||||
end)
|
||||
end)
|
65
test/functional/legacy/expand_spec.lua
Normal file
65
test/functional/legacy/expand_spec.lua
Normal file
@ -0,0 +1,65 @@
|
||||
-- Test for expanding file names
|
||||
|
||||
local helpers = require('test.functional.helpers')
|
||||
local eq = helpers.eq
|
||||
local call = helpers.call
|
||||
local nvim = helpers.meths
|
||||
local clear = helpers.clear
|
||||
local source = helpers.source
|
||||
|
||||
local function expected_empty()
|
||||
eq({}, nvim.get_vvar('errors'))
|
||||
end
|
||||
|
||||
describe('expand file name', function()
|
||||
before_each(function()
|
||||
clear()
|
||||
|
||||
source([[
|
||||
func Test_with_directories()
|
||||
call mkdir('Xdir1')
|
||||
call mkdir('Xdir2')
|
||||
call mkdir('Xdir3')
|
||||
cd Xdir3
|
||||
call mkdir('Xdir4')
|
||||
cd ..
|
||||
|
||||
split Xdir1/file
|
||||
call setline(1, ['a', 'b'])
|
||||
w
|
||||
w Xdir3/Xdir4/file
|
||||
close
|
||||
|
||||
next Xdir?/*/file
|
||||
call assert_equal('Xdir3/Xdir4/file', expand('%'))
|
||||
next! Xdir?/*/nofile
|
||||
call assert_equal('Xdir?/*/nofile', expand('%'))
|
||||
|
||||
call delete('Xdir1', 'rf')
|
||||
call delete('Xdir2', 'rf')
|
||||
call delete('Xdir3', 'rf')
|
||||
endfunc
|
||||
|
||||
func Test_with_tilde()
|
||||
let dir = getcwd()
|
||||
call mkdir('Xdir ~ dir')
|
||||
call assert_true(isdirectory('Xdir ~ dir'))
|
||||
cd Xdir\ ~\ dir
|
||||
call assert_true(getcwd() =~ 'Xdir \~ dir')
|
||||
exe 'cd ' . fnameescape(dir)
|
||||
call delete('Xdir ~ dir', 'd')
|
||||
call assert_false(isdirectory('Xdir ~ dir'))
|
||||
endfunc
|
||||
]])
|
||||
end)
|
||||
|
||||
it('works with directories', function()
|
||||
call('Test_with_directories')
|
||||
expected_empty()
|
||||
end)
|
||||
|
||||
it('works with tilde', function()
|
||||
call('Test_with_tilde')
|
||||
expected_empty()
|
||||
end)
|
||||
end)
|
Loading…
Reference in New Issue
Block a user