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 @@ -746,6 +746,8 @@ static char *(features[]) = static int included_patches[] = { /* Add new patch number below this line */ +/**/ + 862, /**/ 861, /**/