summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2020-05-31 16:04:42 +0200
committerBram Moolenaar <Bram@vim.org>2020-05-31 16:04:42 +0200
commitb10090928cb5283f867e8457b7eea0985470d8d4 (patch)
tree4bfeb73e7a4238f26b31f34e52657143769a4a85
parentcfb4b47de08e4437c692d382067dc1692cd83c23 (diff)
patch 8.2.0862: ":term ++curwin" makes the current buffer hiddenv8.2.0862
Problem: ":term ++curwin" makes the current buffer hidden. (Harm te Hennepe) Solution: Do not hide the current buffer. (closes #6170)
-rw-r--r--src/terminal.c6
-rw-r--r--src/testdir/test_terminal.vim15
-rw-r--r--src/version.c2
3 files changed, 15 insertions, 8 deletions
diff --git a/src/terminal.c b/src/terminal.c
index 86a1a0fc35..5514c73ea0 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -459,9 +459,9 @@ term_start(
return NULL;
}
if (do_ecmd(0, NULL, NULL, &split_ea, ECMD_ONE,
- ECMD_HIDE
- + ((flags & TERM_START_FORCEIT) ? ECMD_FORCEIT : 0),
- curwin) == FAIL)
+ (buf_hide(curwin->w_buffer) ? ECMD_HIDE : 0)
+ + ((flags & TERM_START_FORCEIT) ? ECMD_FORCEIT : 0),
+ curwin) == FAIL)
{
vim_free(term);
return NULL;
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index a8a549cbd9..7430eb2e0b 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -450,17 +450,21 @@ func Test_terminal_curwin()
let cmd = Get_cat_123_cmd()
call assert_equal(1, winnr('$'))
- split dummy
+ split Xdummy
+ call setline(1, 'dummy')
+ write
+ call assert_equal(1, getbufinfo('Xdummy')[0].loaded)
exe 'terminal ++curwin ' . cmd
call assert_equal(2, winnr('$'))
+ call assert_equal(0, getbufinfo('Xdummy')[0].loaded)
bwipe!
- split dummy
+ split Xdummy
call term_start(cmd, {'curwin': 1})
call assert_equal(2, winnr('$'))
bwipe!
- split dummy
+ split Xdummy
call setline(1, 'change')
call assert_fails('terminal ++curwin ' . cmd, 'E37:')
call assert_equal(2, winnr('$'))
@@ -468,15 +472,16 @@ func Test_terminal_curwin()
call assert_equal(2, winnr('$'))
bwipe!
- split dummy
+ split Xdummy
call setline(1, 'change')
call assert_fails("call term_start(cmd, {'curwin': 1})", 'E37:')
call assert_equal(2, winnr('$'))
bwipe!
- split dummy
+ split Xdummy
bwipe!
call delete('Xtext')
+ call delete('Xdummy')
endfunc
func s:get_sleep_cmd()
diff --git a/src/version.c b/src/version.c
index d1ebe5b1a3..c39e7123d9 100644
--- a/src/version.c
+++ b/src/version.c
@@ -747,6 +747,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 862,
+/**/
861,
/**/
860,