patch 9.1.0272: autocmd may change cwd after :tcd and :lcd
Problem: Autocommand may change currect directory after :tcd and :lcd.
Solution: Also clear tp_localdir and w_localdir when using aucmd_win.
(zeertzjq)
closes: #14435
Signed-off-by: zeertzjq <zeertzjq@outlook.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/src/window.c b/src/window.c
index 9ffca77..7d78b5f 100644
--- a/src/window.c
+++ b/src/window.c
@@ -4437,8 +4437,7 @@
++buf->b_nwindows;
win_init_empty(wp); // set cursor and topline to safe values
- // Make sure w_localdir and globaldir are NULL to avoid a chdir() in
- // win_enter_ext().
+ // Make sure w_localdir is NULL to avoid a chdir() in win_enter_ext().
VIM_CLEAR(wp->w_localdir);
}
@@ -5445,8 +5444,8 @@
* Used after making another window the current one: change directory if
* needed.
*/
- static void
-fix_current_dir(void)
+ void
+win_fix_current_dir(void)
{
if (curwin->w_localdir != NULL || curtab->tp_localdir != NULL)
{
@@ -5567,7 +5566,7 @@
}
#endif
- fix_current_dir();
+ win_fix_current_dir();
#ifdef FEAT_JOB_CHANNEL
entering_window(curwin);