From 8cda6413500489193e4e0872f470ecad113ba162 Mon Sep 17 00:00:00 2001 From: JT <547158+jntrnr@users.noreply.github.com> Date: Wed, 23 Nov 2022 15:18:34 +1300 Subject: [PATCH] Don't redirect stdout when only redirecting stderr (#7206) # Description Spotted by @WindSoilder - don't redirect stdout if the user requests `err>`. # User-Facing Changes _(List of all changes that impact the user experience here. This helps us keep track of breaking changes.)_ # Tests + Formatting Don't forget to add tests that cover your changes. Make sure you've run and fixed any issues with these commands: - `cargo fmt --all -- --check` to check standard code formatting (`cargo fmt --all` applies these changes) - `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used -A clippy::needless_collect` to check that you're using the standard code style - `cargo test --workspace` to check that all tests pass # After Submitting If your PR had any user-facing changes, update [the documentation](https://github.com/nushell/nushell.github.io) after the PR is merged, if necessary. This will help us keep the docs up to date. --- crates/nu-engine/src/eval.rs | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/crates/nu-engine/src/eval.rs b/crates/nu-engine/src/eval.rs index 821e64b97b..bb0cef67a3 100644 --- a/crates/nu-engine/src/eval.rs +++ b/crates/nu-engine/src/eval.rs @@ -938,7 +938,14 @@ pub fn eval_block( stack, &pipeline.elements[i], input, - redirect_stdout || (i != pipeline.elements.len() - 1), + redirect_stdout + || (i != pipeline.elements.len() - 1) + && (matches!( + pipeline.elements[i + 1], + PipelineElement::Redirection(_, Redirection::Stdout, _) + | PipelineElement::Redirection(_, Redirection::StdoutAndStderr, _) + | PipelineElement::Expression(..) + )), redirect_stderr || ((i < pipeline.elements.len() - 1) && (matches!(