]> granicus.if.org Git - vim/commitdiff
patch 8.2.4513: window-local directory is not applied if 'acd' fails v8.2.4513
authorzeertzjq <zeertzjq@outlook.com>
Sat, 5 Mar 2022 17:00:31 +0000 (17:00 +0000)
committerBram Moolenaar <Bram@vim.org>
Sat, 5 Mar 2022 17:00:31 +0000 (17:00 +0000)
Problem:    Window-local directory is not applied if 'acd' fails.
Solution:   Don't call do_autochdir(). (closes #9891)

src/testdir/test_autochdir.vim
src/version.c
src/window.c

index 64747245658fc03e48ef8674c2331f0cbf75d48f..36b4695827e5b9462e0fcf47ee2f0a1176df48aa 100644 (file)
@@ -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'))
 
index e80801035027816c109a1d5ed75f9065a8b17746..357ed40e97bc35b5c6694d80cfea21d4543790a4 100644 (file)
@@ -754,6 +754,8 @@ static char *(features[]) =
 
 static int included_patches[] =
 {   /* Add new patch number below this line */
+/**/
+    4513,
 /**/
     4512,
 /**/
index 5e6fce8027c65b969727fa551de3d66e3e0c41ab..cf11acf8933a94459151040d149e216de65b621f 100644 (file)
@@ -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;