mirror of
https://github.com/vim/vim.git
synced 2025-07-25 10:54:51 -04:00
patch 8.2.3624: when renaming a terminal buffer status text is not updated
Problem: When renaming a terminal buffer the status text is not updated. Solution: Clear the cached status text when renaming a terminal buffer. (closes #9162)
This commit is contained in:
parent
8b8d829faf
commit
3ad695328f
@ -3453,6 +3453,11 @@ buf_name_changed(buf_T *buf)
|
|||||||
if (buf->b_ml.ml_mfp != NULL)
|
if (buf->b_ml.ml_mfp != NULL)
|
||||||
ml_setname(buf);
|
ml_setname(buf);
|
||||||
|
|
||||||
|
#ifdef FEAT_TERMINAL
|
||||||
|
if (buf->b_term != NULL)
|
||||||
|
term_clear_status_text(buf->b_term);
|
||||||
|
#endif
|
||||||
|
|
||||||
if (curwin->w_buffer == buf)
|
if (curwin->w_buffer == buf)
|
||||||
check_arg_idx(curwin); // check file name for arg list
|
check_arg_idx(curwin); // check file name for arg list
|
||||||
#ifdef FEAT_TITLE
|
#ifdef FEAT_TITLE
|
||||||
|
@ -31,6 +31,7 @@ int term_get_attr(win_T *wp, linenr_T lnum, int col);
|
|||||||
void term_update_colors(term_T *term);
|
void term_update_colors(term_T *term);
|
||||||
void term_update_colors_all(void);
|
void term_update_colors_all(void);
|
||||||
char_u *term_get_status_text(term_T *term);
|
char_u *term_get_status_text(term_T *term);
|
||||||
|
void term_clear_status_text(term_T *term);
|
||||||
int set_ref_in_term(int copyID);
|
int set_ref_in_term(int copyID);
|
||||||
void f_term_dumpwrite(typval_T *argvars, typval_T *rettv);
|
void f_term_dumpwrite(typval_T *argvars, typval_T *rettv);
|
||||||
int term_swap_diff(void);
|
int term_swap_diff(void);
|
||||||
|
@ -4637,6 +4637,15 @@ term_get_status_text(term_T *term)
|
|||||||
return term->tl_status_text;
|
return term->tl_status_text;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Clear the cached value of the status text.
|
||||||
|
*/
|
||||||
|
void
|
||||||
|
term_clear_status_text(term_T *term)
|
||||||
|
{
|
||||||
|
VIM_CLEAR(term->tl_status_text);
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Mark references in jobs of terminals.
|
* Mark references in jobs of terminals.
|
||||||
*/
|
*/
|
||||||
|
@ -159,6 +159,18 @@ func Test_terminal_hide_buffer_job_finished()
|
|||||||
bwipe Xasdfasdf
|
bwipe Xasdfasdf
|
||||||
endfunc
|
endfunc
|
||||||
|
|
||||||
|
func Test_terminal_rename_buffer()
|
||||||
|
let cmd = Get_cat_123_cmd()
|
||||||
|
let buf = term_start(cmd, {'term_name': 'foo'})
|
||||||
|
call WaitForAssert({-> assert_equal('finished', term_getstatus(buf))})
|
||||||
|
call assert_equal('foo', bufname())
|
||||||
|
call assert_match('foo.*finished', execute('ls'))
|
||||||
|
file bar
|
||||||
|
call assert_equal('bar', bufname())
|
||||||
|
call assert_match('bar.*finished', execute('ls'))
|
||||||
|
exe 'bwipe! ' .. buf
|
||||||
|
endfunc
|
||||||
|
|
||||||
func s:Nasty_exit_cb(job, st)
|
func s:Nasty_exit_cb(job, st)
|
||||||
exe g:buf . 'bwipe!'
|
exe g:buf . 'bwipe!'
|
||||||
let g:buf = 0
|
let g:buf = 0
|
||||||
|
@ -757,6 +757,8 @@ static char *(features[]) =
|
|||||||
|
|
||||||
static int included_patches[] =
|
static int included_patches[] =
|
||||||
{ /* Add new patch number below this line */
|
{ /* Add new patch number below this line */
|
||||||
|
/**/
|
||||||
|
3624,
|
||||||
/**/
|
/**/
|
||||||
3623,
|
3623,
|
||||||
/**/
|
/**/
|
||||||
|
Loading…
x
Reference in New Issue
Block a user