diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-08-09 21:45:52 +0200 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-08-09 21:45:52 +0200 |
commit | a9a47d157ab1946d1e286c9695bc68d71305af68 (patch) | |
tree | bd97177c3df8a3671e3d2a0a58ce0609ca80d7dd | |
parent | 7f7a8888699bca6df0a45a16db5f0e313383b5f1 (diff) |
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.c | 6 | ||||
-rw-r--r-- | src/testdir/test_cd.vim | 9 | ||||
-rw-r--r-- | src/version.c | 2 | ||||
-rw-r--r-- | src/window.c | 2 |
4 files changed, 17 insertions, 2 deletions
diff --git a/src/clientserver.c b/src/clientserver.c index fbbeb6a4bf..7215aa7ffb 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 bd6e3d9a53..8a0fbb247d 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 e290ea29ca..64eca6bfab 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 7d8122efdd..d2e5c5c2af 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++) |