diff options
author | erw7 <erw7.github@gmail.com> | 2021-11-12 00:07:03 +0900 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2022-03-12 19:23:45 +0800 |
commit | 5051510ade5f171c1239906c8638e804356186fe (patch) | |
tree | 43ce21d99a58a7c77baf6f98d0c5234070db93e4 /src/nvim/terminal.c | |
parent | ab456bc304965d83585cd248284cb36c96927457 (diff) | |
download | rneovim-5051510ade5f171c1239906c8638e804356186fe.tar.gz rneovim-5051510ade5f171c1239906c8638e804356186fe.tar.bz2 rneovim-5051510ade5f171c1239906c8638e804356186fe.zip |
fix(channel): fix channel consistency
- Fix the problem that chanclose() does not work for channel created by
nvim_open_term().
- Fix the problem that the loopback channel is not released.
- Fix the error message when sending raw data to the loopback channel.
Diffstat (limited to 'src/nvim/terminal.c')
-rw-r--r-- | src/nvim/terminal.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/nvim/terminal.c b/src/nvim/terminal.c index 1c26e46a21..a76a806b80 100644 --- a/src/nvim/terminal.c +++ b/src/nvim/terminal.c @@ -317,10 +317,14 @@ void terminal_close(Terminal *term, int status) term->opts.close_cb(term->opts.data); } } else if (!only_destroy) { - // This was called by channel_process_exit_cb() not in process_teardown(). + // Associated channel has been closed and the editor is not exiting. // Do not call the close callback now. Wait for the user to press a key. char msg[sizeof("\r\n[Process exited ]") + NUMBUFLEN]; - snprintf(msg, sizeof msg, "\r\n[Process exited %d]", status); + if (((Channel *)term->opts.data)->streamtype == kChannelStreamInternal) { + snprintf(msg, sizeof msg, "\r\n[Terminal closed]"); + } else { + snprintf(msg, sizeof msg, "\r\n[Process exited %d]", status); + } terminal_receive(term, msg, strlen(msg)); } |