summaryrefslogtreecommitdiffstatshomepage
path: root/test/functional/testnvim.lua
diff options
context:
space:
mode:
authorbfredl <bjorn.linse@gmail.com>2025-10-02 10:42:50 +0200
committerbfredl <bjorn.linse@gmail.com>2026-01-13 09:41:51 +0100
commit5581a53437c77675a229f7920bb2b5189f794315 (patch)
tree30beaa36514728c399da0a2897a28b82a22e7108 /test/functional/testnvim.lua
parent9afd81512b0ccded5499635d28dd50d065298ff0 (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.lua2
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)