aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2025-02-10 11:55:08 +0100
committerJustin M. Keyes <justinkz@gmail.com>2025-02-10 18:56:11 +0100
commita1906c23ddab6fa4d15bc5ceddee97df8034d8cb (patch)
tree0b61d786b8fb318a0e9b2c53eb633332af5aa05d /src
parent69abeaad1d10a1f27b8d693c4204048bad4310f4 (diff)
downloadrneovim-a1906c23ddab6fa4d15bc5ceddee97df8034d8cb.tar.gz
rneovim-a1906c23ddab6fa4d15bc5ceddee97df8034d8cb.tar.bz2
rneovim-a1906c23ddab6fa4d15bc5ceddee97df8034d8cb.zip
fix(ui): Windows :detach is opt-in
Problem: On Windows, spawning the `nvim --embed` server with `detach=true` breaks various `tt.setup_child_nvim` tests. Solution: Make this behavior opt-in with an env var, temporarily.
Diffstat (limited to 'src')
-rw-r--r--src/nvim/event/proc.c6
-rw-r--r--src/nvim/ui_client.c3
2 files changed, 5 insertions, 4 deletions
diff --git a/src/nvim/event/proc.c b/src/nvim/event/proc.c
index 2955693687..e32bbbc29a 100644
--- a/src/nvim/event/proc.c
+++ b/src/nvim/event/proc.c
@@ -438,9 +438,9 @@ static void on_proc_exit(Proc *proc)
ILOG("child exited: pid=%d status=%d" PRIu64, proc->pid, proc->status);
// XXX: This assumes the TUI never spawns any other processes...?
- // if (ui_client_channel_id) {
- // exit_on_closed_chan(proc->status);
- // }
+ if (ui_client_channel_id) {
+ exit_on_closed_chan(proc->status);
+ }
// Process has terminated, but there could still be data to be read from the
// OS. We are still in the libuv loop, so we cannot call code that polls for
diff --git a/src/nvim/ui_client.c b/src/nvim/ui_client.c
index d42c0a7fdd..44fc645a04 100644
--- a/src/nvim/ui_client.c
+++ b/src/nvim/ui_client.c
@@ -62,7 +62,8 @@ uint64_t ui_client_start_server(int argc, char **argv)
on_err.fwd_err = true;
#ifdef MSWIN
- bool detach = false; // TODO(justinmk): detach=true breaks `tt.setup_child_nvim` tests on Windows.
+ // TODO(justinmk): detach breaks `tt.setup_child_nvim` tests on Windows?
+ bool detach = os_env_exists("__NVIM_DETACH");
#else
bool detach = true;
#endif