summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-08-09 21:45:52 +0200
committerBram Moolenaar <Bram@vim.org>2020-08-09 21:45:52 +0200
commita9a47d157ab1946d1e286c9695bc68d71305af68 (patch)
treebd97177c3df8a3671e3d2a0a58ce0609ca80d7dd
parent7f7a8888699bca6df0a45a16db5f0e313383b5f1 (diff)
downloadvim-git-a9a47d157ab1946d1e286c9695bc68d71305af68.tar.gz
patch 8.2.1411: when splitting a window localdir is copied but prevdir is notv8.2.1411
Problem: when splitting a window localdir is copied but prevdir is not. Solution: Also copy prevdir. (closes #6667)
-rw-r--r--src/clientserver.c6
-rw-r--r--src/testdir/test_cd.vim9
-rw-r--r--src/version.c2
-rw-r--r--src/window.c2
4 files changed, 17 insertions, 2 deletions
diff --git a/src/clientserver.c b/src/clientserver.c
index fbbeb6a4b..7215aa7ff 100644
--- a/src/clientserver.c
+++ b/src/clientserver.c
@@ -596,7 +596,8 @@ build_drop_cmd(
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 @@ build_drop_cmd(
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 bd6e3d9a5..8a0fbb247 100644
--- a/src/testdir/test_cd.vim
+++ b/src/testdir/test_cd.vim
@@ -168,6 +168,15 @@ func Test_prev_dir()
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 e290ea29c..64eca6bfa 100644
--- a/src/version.c
+++ b/src/version.c
@@ -755,6 +755,8 @@ static char *(features[]) =
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 7d8122efd..d2e5c5c2a 100644
--- a/src/window.c
+++ b/src/window.c
@@ -1385,6 +1385,8 @@ win_init(win_T *newp, win_T *oldp, int flags UNUSED)
#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++)