| Commit message (Collapse) | Author | Age |
|
|
|
|
|
|
|
| |
Remove global array of file descriptors, in
favor of relying on CLO_EXEC exclusively.
Also correctly implement "pipe avoidance" so
that fd redirections do not conflict
with pipes.
|
| |
|
|
|
|
|
|
|
|
|
|
| |
redirections for a process were flattened into a big list associated with the job, so there was no way to tell which redirections applied to each process. Each process therefore got all the redirections associated with the job. See https://github.com/fish-shell/fish-shell/issues/877 for how this could manifest.
With this change, jobs only track their block-level redirections. Process level redirections are correctly associated with the process, and at exec time we stitch them together (block, pipe, and process redirects).
This fixes the weird issues where redirects bleed across pipelines (like #877), and also allows us to play with the order in which redirections are applied, since the final list is constructed right before it's needed. This lets us put pipes after block level redirections but before process level redirections, so that a 2>&1-type redirection gets picked up after the pipe, i.e. it should fix https://github.com/fish-shell/fish-shell/issues/110
This is a significant change. The tests all pass. Cross your fingers.
|
| |
|
|
|
|
| |
https://github.com/fish-shell/fish-shell/issues/110
|
| |
|
|
|
|
|
|
|
| |
unless it fails
https://github.com/fish-shell/fish-shell/issues/547
https://github.com/fish-shell/fish-shell/issues/214
|
|\ |
|
| | |
|
| | |
|
| | |
|
| | |
|
|/ |
|
| |
|
|
|
|
| |
Addresses https://github.com/fish-shell/fish-shell/issues/495
|
|
|
|
| |
This reverts commit 77f1b1f0fe27778750bb9b9aa53f6bc42d5e5843.
|
|
|
|
|
|
| |
and safe_perror replacements.
Fixes https://github.com/fish-shell/fish-shell/issues/495
|
|
|
|
|
|
|
|
|
|
|
| |
https://github.com/fish-shell/fish-shell/pull/487
Revert "Merge branch 'oo-io' of git://github.com/xiaq/fish-shell into xiaq-oo-io"
This reverts commit f3c8f535a48d5fdd518bd60879ade948bc8be7e6, reversing
changes made to b02f6cf3bc4343cf3e068dee3cb46de7139a5a27.
Also reverts ac023f7588e562a03fdea7fd2feda487f18827c7 and a79d3c680c9548566309121630dadc94e48934c4
|
|
|
|
| |
postfork.cpp. Eliminate copy constructor in io_data_t. Simplify some other uses of shared_ptr<io_data_t>
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
avoid a race
Fix for race where a command's output may not be fully drained
|
|
|
|
|
|
|
| |
because the error handling is too difficult
Fix exec to correctly handle the case where a pid could not be created due to posix_spawn failing
Should fix https://github.com/fish-shell/fish-shell/issues/364
|
|
|
|
| |
and complicated IO redirections
|
|
|
|
| |
We forget to set the parent group ID in posix_spawn (!)
|
|
|
|
|
| |
Rewrite IO chains to be a vector of pointers, instead of a linked list
Removed io_transmogrify
|
| |
|
| |
|
| |
|
|
|
|
| |
fork()
|
| |
|
|
|
|
| |
shares output buffers (not sure how this ever worked before)
|
|
|
|
| |
correctly.
|
| |
|
|
|
|
| |
null_terminated_array_t class.
|
|
|