aboutsummaryrefslogtreecommitdiff
path: root/src/nvim/event/libuv_process.c
diff options
context:
space:
mode:
authorDaniel Hahler <git@thequod.de>2019-08-09 15:34:06 +0200
committerGitHub <noreply@github.com>2019-08-09 15:34:06 +0200
commit939d9053bdf2f56286640c581eb4e2ff5a856540 (patch)
tree8ba6e3bbda157caad29732b0b619566037db1644 /src/nvim/event/libuv_process.c
parentfa0c677a63079e5d27ff037ea8f1e23a71fe6680 (diff)
downloadrneovim-939d9053bdf2f56286640c581eb4e2ff5a856540.tar.gz
rneovim-939d9053bdf2f56286640c581eb4e2ff5a856540.tar.bz2
rneovim-939d9053bdf2f56286640c581eb4e2ff5a856540.zip
channels: reflect exit due to signals in exit status code (#10573)
Uses `128 + term_signal` in case of exit due to a signal. Fixes https://github.com/neovim/neovim/issues/10571.
Diffstat (limited to 'src/nvim/event/libuv_process.c')
-rw-r--r--src/nvim/event/libuv_process.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/src/nvim/event/libuv_process.c b/src/nvim/event/libuv_process.c
index ffe2db9b76..63efee59a8 100644
--- a/src/nvim/event/libuv_process.c
+++ b/src/nvim/event/libuv_process.c
@@ -101,6 +101,10 @@ static void close_cb(uv_handle_t *handle)
static void exit_cb(uv_process_t *handle, int64_t status, int term_signal)
{
Process *proc = handle->data;
- proc->status = (int)status;
+#if defined(WIN32)
+ // Use stored/expected signal.
+ term_signal = proc->exit_signal;
+#endif
+ proc->status = term_signal ? 128 + term_signal : (int)status;
proc->internal_exit_cb(proc);
}