summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBram Moolenaar <Bram@vim.org>2018-08-04 16:54:11 +0200
committerBram Moolenaar <Bram@vim.org>2018-08-04 16:54:11 +0200
commit7da1fb5532890d9c15cdb5b9bec158f9f9c105a7 (patch)
tree154175fbc4976c586ac95cd7448f6339d8e7a37f
parent87ea64ca965ca00b3e72776c39355964293f2ace (diff)
downloadvim-git-7da1fb5532890d9c15cdb5b9bec158f9f9c105a7.tar.gz
patch 8.1.0238: 'buftype' is cleared when using ":term ++hidden cat"v8.1.0238
Problem: 'buftype' is cleared when using ":term ++hidden cat". (Marcin Szamotulski) Solution: Set the "options initialized" flag earlier. (closes #3278)
-rw-r--r--src/terminal.c2
-rw-r--r--src/testdir/test_terminal.vim16
-rw-r--r--src/version.c2
3 files changed, 20 insertions, 0 deletions
diff --git a/src/terminal.c b/src/terminal.c
index 22b90c833..427e027c5 100644
--- a/src/terminal.c
+++ b/src/terminal.c
@@ -529,6 +529,8 @@ term_start(
set_string_option_direct((char_u *)"buftype", -1,
(char_u *)"terminal", OPT_FREE|OPT_LOCAL, 0);
+ // Avoid that 'buftype' is reset when this buffer is entered.
+ curbuf->b_p_initialized = TRUE;
/* Mark the buffer as not modifiable. It can only be made modifiable after
* the job finished. */
diff --git a/src/testdir/test_terminal.vim b/src/testdir/test_terminal.vim
index 7ab0cf8ba..912632470 100644
--- a/src/testdir/test_terminal.vim
+++ b/src/testdir/test_terminal.vim
@@ -1605,3 +1605,19 @@ func Test_zz2_terminal_guioptions_bang()
set guioptions&
call delete(filename)
endfunc
+
+func Test_terminal_hidden()
+ if !has('unix')
+ return
+ endif
+ term ++hidden cat
+ let bnr = bufnr('$')
+ call assert_equal('terminal', getbufvar(bnr, '&buftype'))
+ exe 'sbuf ' . bnr
+ call assert_equal('terminal', &buftype)
+ call term_sendkeys(bnr, "asdf\<CR>")
+ call WaitForAssert({-> assert_match('asdf', term_getline(bnr, 2))})
+ call term_sendkeys(bnr, "\<C-D>")
+ call WaitForAssert({-> assert_equal('finished', term_getstatus(bnr))})
+ bwipe!
+endfunc
diff --git a/src/version.c b/src/version.c
index de3a32e5e..c5f181256 100644
--- a/src/version.c
+++ b/src/version.c
@@ -795,6 +795,8 @@ static char *(features[]) =
static int included_patches[] =
{ /* Add new patch number below this line */
/**/
+ 238,
+/**/
237,
/**/
236,