diff options
author | Bram Moolenaar <Bram@vim.org> | 2020-11-05 19:36:38 +0100 |
---|---|---|
committer | Bram Moolenaar <Bram@vim.org> | 2020-11-05 19:36:38 +0100 |
commit | 00806bceb6dc9c8dcd308e5f7e50f720f7dc71b0 (patch) | |
tree | bf1d99fc4d9567c97dc56b4e6d0edffd74981b7e /src/terminal.c | |
parent | b885b435d126d34475714e39ec1125bd4e1c77c6 (diff) | |
download | vim-git-00806bceb6dc9c8dcd308e5f7e50f720f7dc71b0.tar.gz |
patch 8.2.1959: crash when terminal buffer name is made emptyv8.2.1959
Problem: Crash when terminal buffer name is made empty. (Dhiraj Mishra)
Solution: Fall back to "[No Name]". (closes #7262)
Diffstat (limited to 'src/terminal.c')
-rw-r--r-- | src/terminal.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/src/terminal.c b/src/terminal.c index 7c784b35d..ff3e3bd6a 100644 --- a/src/terminal.c +++ b/src/terminal.c @@ -1598,7 +1598,7 @@ term_try_stop_job(buf_T *buf) char_u buff[DIALOG_MSG_SIZE]; int ret; - dialog_msg(buff, _("Kill job in \"%s\"?"), buf->b_fname); + dialog_msg(buff, _("Kill job in \"%s\"?"), buf_get_fname(buf)); ret = vim_dialog_yesnocancel(VIM_QUESTION, NULL, buff, 1); if (ret == VIM_YES) how = "kill"; @@ -4517,6 +4517,7 @@ term_get_status_text(term_T *term) { char_u *txt; size_t len; + char_u *fname; if (term->tl_normal_mode) { @@ -4533,11 +4534,12 @@ term_get_status_text(term_T *term) txt = (char_u *)_("running"); else txt = (char_u *)_("finished"); - len = 9 + STRLEN(term->tl_buffer->b_fname) + STRLEN(txt); + fname = buf_get_fname(term->tl_buffer); + len = 9 + STRLEN(fname) + STRLEN(txt); term->tl_status_text = alloc(len); if (term->tl_status_text != NULL) vim_snprintf((char *)term->tl_status_text, len, "%s [%s]", - term->tl_buffer->b_fname, txt); + fname, txt); } return term->tl_status_text; } |