From: zeertzjq Date: Sat, 5 Mar 2022 17:00:31 +0000 (+0000) Subject: patch 8.2.4513: window-local directory is not applied if 'acd' fails X-Git-Tag: v8.2.4513 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=b29ae159777028bb3266835b55716749ab0515be;p=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 #9891) --- 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 @@ -754,6 +754,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 4513, /**/ 4512, /**/ 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;