fix double close file with out/err same
This commit is contained in:
parent
6a8169e8ba
commit
7958cda54e
|
@ -124,7 +124,15 @@ pub(crate) fn finish_redirection(
|
||||||
item: RedirectMode::File { file_num },
|
item: RedirectMode::File { file_num },
|
||||||
span,
|
span,
|
||||||
}) => {
|
}) => {
|
||||||
builder.push(Instruction::CloseFile { file_num }.into_spanned(span))?;
|
// Close the file, unless it's the same as out (in which case it was already closed)
|
||||||
|
if !modes.out.is_some_and(|out_mode| match out_mode.item {
|
||||||
|
RedirectMode::File {
|
||||||
|
file_num: out_file_num,
|
||||||
|
} => file_num == out_file_num,
|
||||||
|
_ => false,
|
||||||
|
}) {
|
||||||
|
builder.push(Instruction::CloseFile { file_num }.into_spanned(span))?;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
Some(Spanned {
|
Some(Spanned {
|
||||||
item: RedirectMode::Pipe,
|
item: RedirectMode::Pipe,
|
||||||
|
|
Loading…
Reference in New Issue
Block a user