summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2022-03-05 17:00:31 +0000
committerBram Moolenaar <Bram@vim.org>2022-03-05 17:00:31 +0000
commitb29ae159777028bb3266835b55716749ab0515be (patch)
tree6a5583099154bfd1a982457ec21b5f373ed9405b
parentdf1bbea436636ac227d33dd79f77e07f4fffb028 (diff)
downloadvim-git-b29ae159777028bb3266835b55716749ab0515be.tar.gz
patch 8.2.4513: window-local directory is not applied if 'acd' failsv8.2.4513
Problem: Window-local directory is not applied if 'acd' fails. Solution: Don't call do_autochdir(). (closes #9891)
-rw-r--r--src/testdir/test_autochdir.vim13
-rw-r--r--src/version.c2
-rw-r--r--src/window.c5
3 files changed, 11 insertions, 9 deletions
diff --git a/src/testdir/test_autochdir.vim b/src/testdir/test_autochdir.vim
index 647472456..36b469582 100644
--- a/src/testdir/test_autochdir.vim
+++ b/src/testdir/test_autochdir.vim
@@ -86,22 +86,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/version.c b/src/version.c
index e80801035..357ed40e9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 4513,
+/**/
4512,
/**/
4511,
diff --git a/src/window.c b/src/window.c
index 5e6fce802..cf11acf89 100644
--- a/src/window.c
+++ b/src/window.c
@@ -4772,11 +4772,6 @@ win_enter(win_T *wp, int undo_sync)
static void
fix_current_dir(void)
{
-#ifdef FEAT_AUTOCHDIR
- if (p_acd)
- do_autochdir();
- else
-#endif
if (curwin->w_localdir != NULL || curtab->tp_localdir != NULL)
{
char_u *dirname;