| Commit message (Collapse) | Author | Age |
|
|
|
| |
(added in 9ec808a4c)
|
| |
|
| |
|
|
|
|
|
|
|
| |
Stop printing anything for jobs terminated via ^C.
Don't list the job number if it's the only job.
Fixes #1119
|
|
|
|
|
| |
This re-introduces 3fe10692199fc20a5f4b6ac5057cce43babc5f36
with some associated fixes to address #1768.
|
|
|
|
|
|
| |
This reverts commit 3fe10692199fc20a5f4b6ac5057cce43babc5f36.
In light of #1768
|
|
|
|
|
|
| |
resurrected"
This reverts commit 090f027de179f5bb92f07e5c947f3f273229d840.
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Prior to this fix, a child process may be reaped in one of two ways:
1. By a call to waitpid() within job_continue
2. By a call to waitpid() within the SIGCHLD signal handler
Only the second call was with the WNOHANG option. Thus if the signal
handler fired first, and then the waitpid call fired, we could get a
deadlock because we'd end up waiting on a long-running process. I have
not been able to reproduce this on fish 1.x, though it seems like it
ought to reproduce there too.
This fix migrates the waitpid() call out of the signal handler; the
second class of calls moves to job_reap. This eliminates the possibility
of a race, because we check for job completion before calling waitpid,
and there is no longer the possibility of the job being marked as
complete asynchronously. It also results in a massive conceptual
simplification, since the signal handler is now very simple and easy to
reason about (no more walking jobs lists, etc).
This partially fixes a bug reported in #1273
|
|
|
|
| |
Fixes #1545
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
parser
|
| |
|
|
|
|
| |
implementation.
|
| |
|
|
|
|
| |
https://github.com/fish-shell/fish-shell/issues/1152
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
Fixes https://github.com/fish-shell/fish-shell/issues/876 , and coincidentally also https://github.com/fish-shell/fish-shell/issues/848
|
| |
|
| |
|
|
|
|
|
|
| |
to child processes when either starting them or moving them to the foreground.
https://github.com/fish-shell/fish-shell/issues/176
|
|
|
|
|
|
|
|
|
|
|
| |
On FreeBSD, compilation complains that "this file includes
<sys/termios.h> which is deprecated, use <termios.h> instead". On Linux
and FreeBSD, <sys/termios.h> literally just pulls in <termios.h>. On OS
X and Solaris, <termios.h> pulls in <sys/termios.h>.
<termio.h> doesn't exist on FreeBSD or Mac OS X, and on Linux is marked
as deprecated and just includes <termios.h>. It does exist on Solaris,
but no `struct termio` is ever actually used in the codebase.
|
|
|
|
|
|
|
| |
unless it fails
https://github.com/fish-shell/fish-shell/issues/547
https://github.com/fish-shell/fish-shell/issues/214
|
|
|
|
| |
some fd leaks
|
|
|
|
| |
file descriptors
|
| |
|
|
|
|
| |
io_file_t take its path directly. Make io_buffer_t no longer use a shared_ptr for its data.
|
| |
|
| |
|
|
|
|
| |
This reverts commit 77f1b1f0fe27778750bb9b9aa53f6bc42d5e5843.
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|\
| |
| |
| | |
JanKanis-event-bug-test
|
| |
| |
| |
| | |
Yay for less indirection and less code! The resulting event_t structure is two pointers larger, but cuts out an indirection and allocation.
|
|/ |
|
| |
|
| |
|
|
|
|
| |
Fixes https://github.com/fish-shell/fish-shell/issues/197
|
| |
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
with e.g. echo foo ; ftp
Introduce patch from https://github.com/adityagodbole/fish-shell/commit/9d229cd18c3e5c25a8bd37e9ddd3b67ddc2d1b72
|
| |
|
|
|
|
|
| |
Rewrite IO chains to be a vector of pointers, instead of a linked list
Removed io_transmogrify
|