diff options
Diffstat (limited to 'src')
| -rw-r--r-- | src/nvim/eval.c | 1 | ||||
| -rw-r--r-- | src/nvim/terminal.c | 7 | 
2 files changed, 6 insertions, 2 deletions
| diff --git a/src/nvim/eval.c b/src/nvim/eval.c index 837e19ab98..94683d22cb 100644 --- a/src/nvim/eval.c +++ b/src/nvim/eval.c @@ -22199,7 +22199,6 @@ static void on_process_exit(Process *proc, int status, void *d)      char msg[22];      snprintf(msg, sizeof msg, "\r\n[Process exited %d]", proc->status);      terminal_close(data->term, msg); -    apply_autocmds(EVENT_TERMCLOSE, NULL, NULL, false, curbuf);    }    if (data->status_ptr) { diff --git a/src/nvim/terminal.c b/src/nvim/terminal.c index 0a7807d811..bd0b994c25 100644 --- a/src/nvim/terminal.c +++ b/src/nvim/terminal.c @@ -288,8 +288,9 @@ void terminal_close(Terminal *term, char *msg)    term->forward_mouse = false;    term->closed = true; +  buf_T *buf = handle_get_buffer(term->buf_handle); +    if (!msg || exiting) { -    buf_T *buf = handle_get_buffer(term->buf_handle);      // If no msg was given, this was called by close_buffer(buffer.c).  Or if      // exiting, we must inform the buffer the terminal no longer exists so that      // close_buffer() doesn't call this again. @@ -304,6 +305,10 @@ void terminal_close(Terminal *term, char *msg)    } else {      terminal_receive(term, msg, strlen(msg));    } + +  if (buf) { +    apply_autocmds(EVENT_TERMCLOSE, NULL, NULL, false, buf); +  }  }  void terminal_resize(Terminal *term, uint16_t width, uint16_t height) | 
