forked from aniani/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)
This commit is contained in:
@@ -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'))
|
||||
|
||||
|
@@ -754,6 +754,8 @@ static char *(features[]) =
|
||||
|
||||
static int included_patches[] =
|
||||
{ /* Add new patch number below this line */
|
||||
/**/
|
||||
4513,
|
||||
/**/
|
||||
4512,
|
||||
/**/
|
||||
|
@@ -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;
|
||||
|
Reference in New Issue
Block a user