vim-patch:8.2.4513: window-local directory is not applied if 'acd' fails

Problem:    Window-local directory is not applied if 'acd' fails.
Solution:   Don't call do_autochdir(). (closes vim/vim#9891)
b29ae15977
This commit is contained in:
zeertzjq
2022-03-06 09:11:23 +08:00
parent 8e06377bc6
commit eb70540ff0
3 changed files with 20 additions and 14 deletions

View File

@@ -64,7 +64,7 @@ describe('autochdir behavior', function()
it('win_execute() does not change directory', function()
local subdir = 'Xfile'
command('cd '..dir)
command('set autochdir')
command('set acd')
call('mkdir', subdir)
local winid = eval('win_getid()')
command('new '..subdir..'/file')
@@ -85,23 +85,28 @@ describe('autochdir behavior', function()
command('split '..subdir..'/local.txt')
command('lcd '..subdir)
matches('%[window%].*'..dir..'[/\\]'..subdir, exec_capture('verbose pwd'))
command('set autochdir')
command('set acd')
command('wincmd w')
matches('%[autochdir%].*'..dir, exec_capture('verbose pwd'))
command('lcd '..cwd)
matches('%[window%].*'..dir, exec_capture('verbose pwd'))
command('tcd '..cwd)
matches('%[tabpage%].*'..dir, exec_capture('verbose pwd'))
command('cd '..cwd)
matches('%[global%].*'..dir, exec_capture('verbose pwd'))
command('lcd '..cwd)
matches('%[window%].*'..dir, exec_capture('verbose pwd'))
command('edit')
matches('%[autochdir%].*'..dir, exec_capture('verbose pwd'))
command('enew')
command('wincmd w')
matches('%[autochdir%].*'..dir..'[/\\]'..subdir, exec_capture('verbose pwd'))
command('set noautochdir')
matches('%[autochdir%].*'..dir..'[/\\]'..subdir, exec_capture('verbose pwd'))
command('wincmd w')
matches('%[window%].*'..dir, exec_capture('verbose pwd'))
command('wincmd w')
matches('%[autochdir%].*'..dir..'[/\\]'..subdir, exec_capture('verbose pwd'))
command('set noacd')
matches('%[autochdir%].*'..dir..'[/\\]'..subdir, exec_capture('verbose pwd'))
command('wincmd w')
matches('%[window%].*'..dir, exec_capture('verbose pwd'))
command('cd '..cwd)
matches('%[global%].*'..dir, exec_capture('verbose pwd'))
command('wincmd w')