diff options
| author | bfredl <bjorn.linse@gmail.com> | 2025-10-02 10:42:50 +0200 |
|---|---|---|
| committer | bfredl <bjorn.linse@gmail.com> | 2026-01-13 09:41:51 +0100 |
| commit | 5581a53437c77675a229f7920bb2b5189f794315 (patch) | |
| tree | 30beaa36514728c399da0a2897a28b82a22e7108 /test/functional/testnvim.lua | |
| parent | 9afd81512b0ccded5499635d28dd50d065298ff0 (diff) | |
fix(shell): ceci n'est pas une pipe
On linux /dev/stdin is defined as a symlink to /proc/self/fd/0
This in turn is defined as a "magic" symlink which is allowed to point
to internal kernel objects which really does not have a file
name. As a glaring inconsistency, fopen("/proc/self/fd/0", "r")
works if fd was originally opened using pipe() but not using
socketpair(). As it happens UV_CREATE_PIPE does not create pipes
but creates socket pairs. These two unfortunate conditions
means that using /dev/stdin and similar does not work in
shell commands in nvim on linux. as a work around, override
libuv's descicion and create an actual pipe pair.
This change is not needed on BSD:s but done unconditionally for simplicity,
except for on windows where it is not done for stdout because of windows
fixes #35984
Diffstat (limited to 'test/functional/testnvim.lua')
| -rw-r--r-- | test/functional/testnvim.lua | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/test/functional/testnvim.lua b/test/functional/testnvim.lua index 7d03659f5d..75c48f36a6 100644 --- a/test/functional/testnvim.lua +++ b/test/functional/testnvim.lua @@ -515,7 +515,7 @@ function M.new_session(keep, ...) ) io.stdout:flush() end - end) + end, true) n_processes = n_processes + 1 local new_session = Session.new(proc) |
