diff options
-rw-r--r-- | src/nvim/testdir/test_autochdir.vim | 13 | ||||
-rw-r--r-- | src/nvim/window.c | 4 | ||||
-rw-r--r-- | test/functional/legacy/autochdir_spec.lua | 17 |
3 files changed, 20 insertions, 14 deletions
diff --git a/src/nvim/testdir/test_autochdir.vim b/src/nvim/testdir/test_autochdir.vim index de5c124908..4229095f9f 100644 --- a/src/nvim/testdir/test_autochdir.vim +++ b/src/nvim/testdir/test_autochdir.vim @@ -90,22 +90,27 @@ func Test_verbose_pwd() set acd wincmd w call assert_match('\[autochdir\].*testdir$', execute('verbose pwd')) - execute 'lcd' cwd - call assert_match('\[window\].*testdir$', execute('verbose pwd')) execute 'tcd' cwd call assert_match('\[tabpage\].*testdir$', execute('verbose pwd')) execute 'cd' cwd call assert_match('\[global\].*testdir$', execute('verbose pwd')) + execute 'lcd' cwd + call assert_match('\[window\].*testdir$', execute('verbose pwd')) edit call assert_match('\[autochdir\].*testdir$', execute('verbose pwd')) + enew + wincmd w + call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd')) + wincmd w + call assert_match('\[window\].*testdir$', execute('verbose pwd')) wincmd w call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd')) set noacd call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd')) wincmd w - call assert_match('\[autochdir\].*testdir[/\\]Xautodir', execute('verbose pwd')) + call assert_match('\[window\].*testdir$', execute('verbose pwd')) execute 'cd' cwd - call assert_match('\[global\].*testdir', execute('verbose pwd')) + call assert_match('\[global\].*testdir$', execute('verbose pwd')) wincmd w call assert_match('\[window\].*testdir[/\\]Xautodir', execute('verbose pwd')) diff --git a/src/nvim/window.c b/src/nvim/window.c index f04204fafe..d5299202b0 100644 --- a/src/nvim/window.c +++ b/src/nvim/window.c @@ -4680,10 +4680,6 @@ static void win_enter_ext(win_T *const wp, const int flags) /// Used after making another window the current one: change directory if needed. void fix_current_dir(void) { - if (p_acd) { - do_autochdir(); - return; - } // New directory is either the local directory of the window, tab or NULL. char *new_dir = (char *)(curwin->w_localdir ? curwin->w_localdir : curtab->tp_localdir); diff --git a/test/functional/legacy/autochdir_spec.lua b/test/functional/legacy/autochdir_spec.lua index 89651284b5..7d2fdfc26e 100644 --- a/test/functional/legacy/autochdir_spec.lua +++ b/test/functional/legacy/autochdir_spec.lua @@ -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') |