diff options
Diffstat (limited to 'src/exec.cpp')
-rw-r--r-- | src/exec.cpp | 17 |
1 files changed, 8 insertions, 9 deletions
diff --git a/src/exec.cpp b/src/exec.cpp index b7735d62..b55e7a26 100644 --- a/src/exec.cpp +++ b/src/exec.cpp @@ -257,23 +257,16 @@ static bool io_transmogrify(const io_chain_t &in_chain, io_chain_t *out_chain, shared_ptr<io_data_t> out; // gets allocated via new switch (in->io_mode) { - default: - // Unknown type, should never happen. - fprintf(stderr, "Unknown io_mode %ld\n", (long)in->io_mode); - abort(); - break; - - // These redirections don't need transmogrification. They can be passed through. case IO_PIPE: case IO_FD: case IO_BUFFER: case IO_CLOSE: { + // These redirections don't need transmogrification. They can be passed through. out = in; break; } - - // Transmogrify file redirections. case IO_FILE: { + // Transmogrify file redirections. int fd; CAST_INIT(io_file_t *, in_file, in.get()); if ((fd = open(in_file->filename_cstr, in_file->flags, OPEN_MASK)) == -1) { @@ -288,6 +281,12 @@ static bool io_transmogrify(const io_chain_t &in_chain, io_chain_t *out_chain, out.reset(new io_fd_t(in->fd, fd, false)); break; } + default: { + // Unknown type, should never happen. + fprintf(stderr, "Unknown io_mode %ld\n", (long)in->io_mode); + abort(); + break; + } } if (out.get() != NULL) result_chain.push_back(out); |