From 8e763a2fd641ee261be44026fc2fa7723ebc8e1d Mon Sep 17 00:00:00 2001 From: Ian Manske Date: Thu, 28 Mar 2024 20:22:54 +0000 Subject: [PATCH] Fix file redirection for externals streams (#12321) # Description Fixes `open --raw file o> out.txt` and other instances where `PipelineData::ExternalStream` is created from sources that are not external commands. --- crates/nu-engine/src/eval.rs | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/crates/nu-engine/src/eval.rs b/crates/nu-engine/src/eval.rs index de4d4c6b43..0541125ed7 100644 --- a/crates/nu-engine/src/eval.rs +++ b/crates/nu-engine/src/eval.rs @@ -438,12 +438,12 @@ fn eval_element_with_input_inner( } } - let data = match (data, stack.pipe_stdout()) { - ( - data @ (PipelineData::Value(..) | PipelineData::ListStream(..)), - Some(IoStream::File(_)), - ) => data.write_to_io_streams(engine_state, stack)?, - (data, _) => data, + let data = if matches!(stack.pipe_stdout(), Some(IoStream::File(_))) + && !matches!(stack.pipe_stderr(), Some(IoStream::Pipe)) + { + data.write_to_io_streams(engine_state, stack)? + } else { + data }; Ok((data, ok))