tchdir: New tab should inherit CWD. (#5227)

When a new tabpage gets created it will copy the local working directory
of the previous one, if there is any.
This commit is contained in:
Alejandro Sanchez 2016-09-04 03:40:01 +02:00 committed by Justin M. Keyes
parent 5d8d24f0c2
commit 626065d385
2 changed files with 24 additions and 0 deletions

View File

@ -2978,6 +2978,9 @@ int win_new_tabpage(int after, char_u *filename)
xfree(newtp);
return FAIL;
}
newtp->localdir = tp->localdir ? vim_strsave(tp->localdir) : NULL;
curtab = newtp;
/* Create a new empty window. */

View File

@ -140,6 +140,27 @@ for _, cmd in ipairs {'cd', 'chdir'} do
end)
end)
describe('Local directory gets inherited', function()
it('by tabs', function()
local globalDir = directories.start
-- Create a new tab and change directory
execute('tabnew')
execute('silent t' .. cmd .. ' ' .. directories.tab)
eq(globalDir .. '/' .. directories.tab, tcwd())
-- Create a new tab and verify it has inherited the directory
execute('tabnew')
eq(globalDir .. '/' .. directories.tab, tcwd())
-- Change tab and change back, verify that directories are correct
execute('tabnext')
eq(globalDir, tcwd())
execute('tabprevious')
eq(globalDir .. '/' .. directories.tab, tcwd())
end)
end)
it('works', function()
local globalDir = directories.start
-- Create a new tab first and verify that is has the same working dir