aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-03-06 09:11:23 +0800
committerzeertzjq <zeertzjq@outlook.com>2022-03-07 06:43:03 +0800
commiteb70540ff0385f3929b39f26faceaa2765f6949a (patch)
tree3038fb021033bd853b88b1dd86b1a4c19855cbcf /src
parent8e06377bc6b3cdbabd0fd50e5ee351067fc5ec42 (diff)
downloadrneovim-eb70540ff0385f3929b39f26faceaa2765f6949a.tar.gz
rneovim-eb70540ff0385f3929b39f26faceaa2765f6949a.tar.bz2
rneovim-eb70540ff0385f3929b39f26faceaa2765f6949a.zip
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) https://github.com/vim/vim/commit/b29ae159777028bb3266835b55716749ab0515be
Diffstat (limited to 'src')
-rw-r--r--src/nvim/testdir/test_autochdir.vim13
-rw-r--r--src/nvim/window.c4
2 files changed, 9 insertions, 8 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);