aboutsummaryrefslogtreecommitdiffhomepage
path: root/io.h
Commit message (Collapse)AuthorAge
* Fix the build on OS X MavericksGravatar ridiculousfish2013-08-21
| | | | https://github.com/fish-shell/fish-shell/issues/968
* 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
* Formatting and style updatesGravatar ridiculousfish2013-05-05
|
* Support for building with C++11Gravatar ridiculousfish2013-04-09
|
* Hopeful fix to avoid forking for certain builtins like echo when they have ↵Gravatar ridiculousfish2013-02-22
| | | | an input redirection only
* Make io_file_t members constGravatar Cheer Xiao2013-02-11
|
* Make io_fd_t members const, make close_fd boolGravatar Cheer Xiao2013-02-11
|
* Make io_data_t::fd constGravatar Cheer Xiao2013-02-11
| | | | In exec(), pipe_{write,read} no longer get reused.
* Initial set of changes working to make fish robust against running out of ↵Gravatar ridiculousfish2013-01-30
| | | | file descriptors
* Remove trailing whitespacesGravatar Cheer Xiao2013-01-21
|
* 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.
* Revert "Make io_buffer_t::out_buffer a raw pointer, initialize in ↵Gravatar Cheer Xiao2013-01-17
| | | | | | | | | | io_buffer_t's constructor" This reverts commit d48ffab9d67da48cf45c2f5560c21a767144545f. Conflicts: io.cpp io.h
* Make io_data_t::io_mode constGravatar Cheer Xiao2013-01-17
| | | | | A protected constructor is needed in io_pipe_t to let io_buffer_t override its io_mode.
* Make is_input a member of io_pipe_tGravatar Cheer Xiao2013-01-17
|
* Make io_buffer_t::out_buffer a raw pointer, initialize in io_buffer_t's ↵Gravatar Cheer Xiao2013-01-17
| | | | constructor
* Make io_data_t pure virtual, its constructor protectedGravatar 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
|
* Add missing virtual qualifier to ~io_buffer_tGravatar 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
|
* Split out io_close_tGravatar Cheer Xiao2013-01-17
|
* Put io_data_t detail printing in virtual io_data_t::printGravatar Cheer Xiao2013-01-17
|
* Let io_data_t constructor take optional io_mode and fdGravatar Cheer Xiao2013-01-17
|
* Make io_data_t destructor virtualGravatar Cheer Xiao2013-01-17
|
* Use new IO_INVALID as default value of io_data_t::io_modeGravatar Cheer Xiao2013-01-17
|
* rename enum io_mode -> io_mode_t; make io_data_t::io_mode that typeGravatar Cheer Xiao2013-01-17
|
* Revert "Revert shared_ptr<io_data_t> changes until kinks are ironed out"Gravatar Cheer Xiao2013-01-11
| | | | This reverts commit 77f1b1f0fe27778750bb9b9aa53f6bc42d5e5843.
* 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
* Remove io_duplicate, which is no longer usedGravatar ridiculousfish2013-01-04
|
* 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>
* 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
|
* Apply new indentation, brace, and whitespace styleGravatar ridiculousfish2012-11-18
|
* Remove trailing whitespaces and change tabs to spacesGravatar Łukasz Niemier2012-11-18
|
* Restore correct order of IO redirectionsGravatar ridiculousfish2012-08-19
| | | | Fixes https://github.com/fish-shell/fish-shell/issues/281
* Adopt posix_spawn (!)Gravatar ridiculousfish2012-08-15
| | | | | Rewrite IO chains to be a vector of pointers, instead of a linked list Removed io_transmogrify
* Additional warnings cleanup, effective C++ violations, dead code removalGravatar ridiculousfish2012-08-05
|
* Fixed a crash on inputs like ls x>| less, where x doesn't exist in current ↵Gravatar Siteshwar Vashisht2012-03-16
| | | | directory.
* Flip the switch to stop draining threads before exec (!)Gravatar ridiculousfish2012-03-09
|
* A bunch of changes working towards eliminating all memory allocation after ↵Gravatar ridiculousfish2012-03-08
| | | | fork()
* Implemented test as a builtin (!)Gravatar ridiculousfish2012-03-07
|
* Final cleanup of io_data_t now that I recognize the bizarre way in which it ↵Gravatar ridiculousfish2012-03-04
| | | | shares output buffers (not sure how this ever worked before)
* Some initial work on removing buffer_t from io_data_tGravatar ridiculousfish2012-03-03
|
* Squash a bunch of leaksGravatar ridiculousfish2012-02-21
|
* Some hopefully good changes to get IOs off of hallocGravatar ridiculousfish2012-02-09
|