patch 8.2.1411: when splitting a window localdir is copied but prevdir is not
Problem: when splitting a window localdir is copied but prevdir is not.
Solution: Also copy prevdir. (closes #6667)
diff --git a/src/clientserver.c b/src/clientserver.c
index fbbeb6a..7215aa7 100644
--- a/src/clientserver.c
+++ b/src/clientserver.c
@@ -596,7 +596,8 @@
ga_concat(&ga, cdp);
// Call inputsave() so that a prompt for an encryption key works.
- ga_concat(&ga, (char_u *)"<CR>:if exists('*inputsave')|call inputsave()|endif|");
+ ga_concat(&ga, (char_u *)
+ "<CR>:if exists('*inputsave')|call inputsave()|endif|");
if (tabs)
ga_concat(&ga, (char_u *)"tab ");
ga_concat(&ga, (char_u *)"drop");
@@ -621,7 +622,8 @@
ga_concat(&ga, p);
vim_free(p);
}
- ga_concat(&ga, (char_u *)"|if exists('*inputrestore')|call inputrestore()|endif<CR>");
+ ga_concat(&ga, (char_u *)
+ "|if exists('*inputrestore')|call inputrestore()|endif<CR>");
// The :drop commands goes to Insert mode when 'insertmode' is set, use
// CTRL-\ CTRL-N again.
diff --git a/src/testdir/test_cd.vim b/src/testdir/test_cd.vim
index bd6e3d9..8a0fbb2 100644
--- a/src/testdir/test_cd.vim
+++ b/src/testdir/test_cd.vim
@@ -168,6 +168,15 @@
call delete('Xdir', 'rf')
endfunc
+func Test_lcd_split()
+ let curdir = getcwd()
+ lcd ..
+ split
+ lcd -
+ call assert_equal(curdir, getcwd())
+ quit!
+endfunc
+
func Test_cd_completion()
call mkdir('XComplDir1', 'p')
call mkdir('XComplDir2', 'p')
diff --git a/src/version.c b/src/version.c
index e290ea2..64eca6b 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 1411,
+/**/
1410,
/**/
1409,
diff --git a/src/window.c b/src/window.c
index 7d8122e..d2e5c5c 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1385,6 +1385,8 @@
#endif
newp->w_localdir = (oldp->w_localdir == NULL)
? NULL : vim_strsave(oldp->w_localdir);
+ newp->w_prevdir = (oldp->w_prevdir == NULL)
+ ? NULL : vim_strsave(oldp->w_prevdir);
// copy tagstack and folds
for (i = 0; i < oldp->w_tagstacklen; i++)