aboutsummaryrefslogtreecommitdiffhomepage
path: root/exec.cpp
Commit message (Collapse)AuthorAge
* Cast size_t to unsigned long.Gravatar Konrad Borowski2013-11-25
| | | | | | printf expects unsigned long (%lu) argument, however, size_t doesn't have to be declared as such. As %zu is C99 (but not C++), it shouldn't be used directly. Instead, I have to cast value to the correct type.
* Fix formattingGravatar ridiculousfish2013-10-26
|
* Fix a C++11 compile error with clang.Gravatar ridiculousfish2013-08-25
| | | | https://github.com/mxcl/homebrew/pull/22016#issuecomment-23222977
* Put read pipe last so that eval works again. Addresses ↵Gravatar ridiculousfish2013-08-21
| | | | https://github.com/fish-shell/fish-shell/issues/966
* Replace some #warnings with a comment explaining why the code is OKGravatar ridiculousfish2013-08-19
|
* Big fat refactoring of how redirections work. In fish 1.x and 2.0.0, the ↵Gravatar ridiculousfish2013-08-19
| | | | | | | | | | 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.
* Initial work towards various IO cleanups with an eye to fixing ↵Gravatar ridiculousfish2013-08-19
| | | | https://github.com/fish-shell/fish-shell/issues/110
* Cleanup of code that decides whether or not to fork. Fix for issue where ↵Gravatar ridiculousfish2013-06-16
| | | | stderr may be output twice.
* Fix for incorrect use of shared ptr referencesGravatar ridiculousfish2013-06-16
|
* Formatting and style updatesGravatar ridiculousfish2013-05-05
|
* Mark stdin as nonblocking if we get EWOULDBLOCK, and before handing it off ↵Gravatar ridiculousfish2013-04-07
| | | | | | to child processes when either starting them or moving them to the foreground. https://github.com/fish-shell/fish-shell/issues/176
* Teach fish how to push and pop blocks even in the face of no_exec. All tests ↵Gravatar ridiculousfish2013-03-25
| | | | | | finally pass. https://github.com/fish-shell/fish-shell/issues/624
* Additional changes related to https://github.com/fish-shell/fish-shell/pull/592Gravatar ridiculousfish2013-02-28
|
* Cleanup and simplify null_terminated_array_t and its clientsGravatar ridiculousfish2013-02-22
|
* Hopeful fix to avoid forking for certain builtins like echo when they have ↵Gravatar ridiculousfish2013-02-22
| | | | an input redirection only
* Fix a crash when redirecting a nonexistent file to a functionGravatar ridiculousfish2013-02-20
| | | | https://github.com/fish-shell/fish-shell/pull/574
* More cleanup based on static analysisGravatar ridiculousfish2013-02-16
| | | | https://github.com/fish-shell/fish-shell/issues/575
* exec(): Fix a stupid crash. Remove commented debug code that became invalidated.Gravatar Cheer Xiao2013-02-11
|
* In exec(), only add and remove pipe_{read,write} when necessaryGravatar Cheer Xiao2013-02-11
|
* Make io_data_t::fd constGravatar Cheer Xiao2013-02-11
| | | | In exec(), pipe_{write,read} no longer get reused.
* remove __warn_unused attribute from exec_subshellGravatar Jan Kanis2013-02-06
|
* Make subcommands modify $status, and make builtin_set not modify status ↵Gravatar ridiculousfish2013-01-31
| | | | | | | unless it fails https://github.com/fish-shell/fish-shell/issues/547 https://github.com/fish-shell/fish-shell/issues/214
* Attempt to further improve fish's handling when it runs out of fds, and plug ↵Gravatar ridiculousfish2013-01-30
| | | | some fd leaks
* Initial set of changes working to make fish robust against running out of ↵Gravatar ridiculousfish2013-01-30
| | | | file descriptors
* Fix spelling: s/circut/circuit/gGravatar Cheer Xiao2013-01-24
|
* Remove some functions which were rendered trivial by xiaq's changes. Make ↵Gravatar ridiculousfish2013-01-19
| | | | io_file_t take its path directly. Make io_buffer_t no longer use a shared_ptr for its data.
* Merge branch 'split-io' of git://github.com/xiaq/fish-shell into xiaq-split-ioGravatar ridiculousfish2013-01-18
|\
* | Fix two clang warningsGravatar Cheer Xiao2013-01-17
| |
| * Make is_input a member of io_pipe_tGravatar Cheer Xiao2013-01-17
| |
| * Split out io_pipe_t, let io_buffer_t inherit itGravatar Cheer Xiao2013-01-17
| |
| * Convert io_buffer_read to io_buffer_t::readGravatar Cheer Xiao2013-01-17
| |
| * Convert io_buffer_create to static io_buffer_t::create, make io_buffer_t ↵Gravatar Cheer Xiao2013-01-17
| | | | | | | | constructor private
| * Convert io_buffer_destroy to ~io_buffer_tGravatar Cheer Xiao2013-01-17
| |
| * Split out io_buffer_t, make input_redirect in exec() a raw pointerGravatar Cheer Xiao2013-01-17
| |
| * Split out io_file_tGravatar Cheer Xiao2013-01-17
| |
| * Split out io_fd_tGravatar Cheer Xiao2013-01-17
|/
* Make do_builtin_io multi-fork safe, moved it to postfork.cppGravatar ridiculousfish2013-01-11
| | | | Addresses https://github.com/fish-shell/fish-shell/issues/495
* Revert "Revert shared_ptr<io_data_t> changes until kinks are ironed out"Gravatar Cheer Xiao2013-01-11
| | | | This reverts commit 77f1b1f0fe27778750bb9b9aa53f6bc42d5e5843.
* exec.cpp:exec: Don't remove block_io elements from j->ioGravatar Cheer Xiao2013-01-11
| | | | | | When dulicate_prepend prepend copies of block_io elements to j->io, the removing simply does nothing. Now that the same pointers are prepended to j->io, don't remove them.
* Revert shared_ptr<io_data_t> changes until kinks are ironed outGravatar ridiculousfish2013-01-04
| | | | | | | | | | | 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
* Replace some shared_ptrs with const shared_ptr &. Don't use shared_ptr in ↵Gravatar ridiculousfish2013-01-04
| | | | postfork.cpp. Eliminate copy constructor in io_data_t. Simplify some other uses of shared_ptr<io_data_t>
* Use const shared_ptr<io_data_t>& instead of copying where appropriate.Gravatar Cheer Xiao2013-01-01
|
* Convert all io_data_t copying to shared_ptr copying.Gravatar Cheer Xiao2013-01-01
| | | | Copy constructor of io_data_t is removed.
* Use shared_ptr to manage io_data_t*.Gravatar Cheer Xiao2012-12-31
|
* Clean up initialization of pipe_{read,write} in exec() a bit.Gravatar Cheer Xiao2012-12-21
|
* Make skip_fork a boolGravatar ridiculousfish2012-12-21
|
* Make echo recognize -neGravatar ridiculousfish2012-12-20
|
* Rewrite str2wcstring to properly handle embedded nulls, and be simplerGravatar ridiculousfish2012-12-20
|
* Simplify exec_subshell_internalGravatar ridiculousfish2012-12-19
|
* Eliminate str2wcsGravatar ridiculousfish2012-12-19
|