Fixed interrupting a for-loop over a list bug
@@ -2,8 +2,8 @@ use nu_engine::{eval_block, eval_expression, CallExt};
use nu_protocol::ast::Call;
use nu_protocol::engine::{CaptureBlock, Command, EngineState, Stack};
use nu_protocol::{
- Category, Example, IntoInterruptiblePipelineData, PipelineData, Signature, Span, SyntaxShape,
- Value,
+ Category, Example, IntoInterruptiblePipelineData, ListStream, PipelineData, Signature, Span,
+ SyntaxShape, Value,
};
#[derive(Clone)]
@@ -88,8 +88,8 @@ https://www.nushell.sh/book/thinking_in_nushell.html#parsing-and-evaluation-are-
let redirect_stderr = call.redirect_stderr;
match values {
- Value::List { vals, .. } => Ok(vals
- .into_iter()
+ Value::List { vals, .. } => {
+ Ok(ListStream::from_stream(vals.into_iter(), ctrlc.clone())
.enumerate()
.map(move |(idx, x)| {
stack.with_env(&orig_env_vars, &orig_env_hidden);
@@ -127,7 +127,8 @@ https://www.nushell.sh/book/thinking_in_nushell.html#parsing-and-evaluation-are-
}
})
.filter(|x| !x.is_nothing())
- .into_pipeline_data(ctrlc)),
+ .into_pipeline_data(ctrlc))
+ }
Value::Range { val, .. } => Ok(val
.into_range_iter(ctrlc.clone())?
.enumerate()
