Remove the close_old field from io_fd_t, which is never actually

respected - a bug dating back to fish 1.x! The fd that would be closed
is actually closed in io_cleanup_fds().
This commit is contained in:
ridiculousfish 2014-04-11 10:51:15 -07:00
parent 8ed08872b9
commit 1ce30deec3
2 changed files with 3 additions and 7 deletions

View file

@ -460,7 +460,7 @@ static bool io_transmogrify(const io_chain_t &in_chain, io_chain_t *out_chain, s
} }
opened_fds.push_back(fd); opened_fds.push_back(fd);
out.reset(new io_fd_t(in->fd, fd, true)); out.reset(new io_fd_t(in->fd, fd));
break; break;
} }

8
io.h
View file

@ -66,15 +66,11 @@ public:
/** fd to redirect specified fd to. For example, in 2>&1, old_fd is 1, and io_data_t::fd is 2 */ /** fd to redirect specified fd to. For example, in 2>&1, old_fd is 1, and io_data_t::fd is 2 */
const int old_fd; const int old_fd;
/** Whether to close old_fd */
const bool close_old;
virtual void print() const; virtual void print() const;
io_fd_t(int f, int old, bool close = false) : io_fd_t(int f, int old) :
io_data_t(IO_FD, f), io_data_t(IO_FD, f),
old_fd(old), old_fd(old)
close_old(close)
{ {
} }
}; };