Mirror of the Vim source from https://github.com/vim/vim
Révision | 1456b8e4d4890320c31f01f5b31bc28b8b0e2012 (tree) |
---|---|
l'heure | 2020-11-25 03:45:03 |
Auteur | Bram Moolenaar <Bram@vim....> |
Commiter | Bram Moolenaar |
patch 8.2.2040: terminal buffer disappears even when 'bufhidden' is "hide"
Commit: https://github.com/vim/vim/commit/c9f8b849b6de9661e543d0d1431e233725dd956f
Author: Bram Moolenaar <Bram@vim.org>
Date: Tue Nov 24 19:36:16 2020 +0100
@@ -552,6 +552,11 @@ | ||
552 | 552 | unload_buf = FALSE; |
553 | 553 | } |
554 | 554 | } |
555 | + else if (buf->b_p_bh[0] == 'h' && !del_buf) | |
556 | + { | |
557 | + // Hide a terminal buffer. | |
558 | + unload_buf = FALSE; | |
559 | + } | |
555 | 560 | else |
556 | 561 | { |
557 | 562 | // A terminal buffer is wiped out if the job has finished. |
@@ -123,7 +123,7 @@ | ||
123 | 123 | unlet g:job |
124 | 124 | endfunc |
125 | 125 | |
126 | -func Test_terminal_hide_buffer() | |
126 | +func Test_terminal_hide_buffer_job_running() | |
127 | 127 | let buf = Run_shell_in_terminal({}) |
128 | 128 | setlocal bufhidden=hide |
129 | 129 | quit |
@@ -140,6 +140,25 @@ | ||
140 | 140 | unlet g:job |
141 | 141 | endfunc |
142 | 142 | |
143 | +func Test_terminal_hide_buffer_job_finished() | |
144 | + term echo hello | |
145 | + let buf = bufnr() | |
146 | + setlocal bufhidden=hide | |
147 | + call WaitForAssert({-> assert_equal('finished', term_getstatus(buf))}) | |
148 | + call assert_true(bufloaded(buf)) | |
149 | + call assert_true(buflisted(buf)) | |
150 | + edit Xasdfasdf | |
151 | + call assert_true(bufloaded(buf)) | |
152 | + call assert_true(buflisted(buf)) | |
153 | + exe buf .. 'buf' | |
154 | + call assert_equal(buf, bufnr()) | |
155 | + setlocal bufhidden= | |
156 | + edit Xasdfasdf | |
157 | + call assert_false(bufloaded(buf)) | |
158 | + call assert_false(buflisted(buf)) | |
159 | + bwipe Xasdfasdf | |
160 | +endfunc | |
161 | + | |
143 | 162 | func s:Nasty_exit_cb(job, st) |
144 | 163 | exe g:buf . 'bwipe!' |
145 | 164 | let g:buf = 0 |
@@ -751,6 +751,8 @@ | ||
751 | 751 | static int included_patches[] = |
752 | 752 | { /* Add new patch number below this line */ |
753 | 753 | /**/ |
754 | + 2040, | |
755 | +/**/ | |
754 | 756 | 2039, |
755 | 757 | /**/ |
756 | 758 | 2038, |