diff --git a/src/lib/shell/assignments.rs b/src/lib/shell/assignments.rs index 7c321f7143a20c571ac9f0b85f05390ca98e0e6a..d532ffce12f1d643db35386e081fcba6eab7d9ec 100644 --- a/src/lib/shell/assignments.rs +++ b/src/lib/shell/assignments.rs @@ -440,8 +440,10 @@ impl VariableStore for Shell { for action in actions_step2 { match action { Ok(Action::UpdateArray(key, operator, ..)) => { - if operator == Operator::OptionalEqual && self.variables.get_ref(key.name).is_some() { - continue; + if operator == Operator::OptionalEqual + && self.variables.get_ref(key.name).is_some() + { + continue; } match collected.remove(key.name) { hmap @ Some(VariableType::HashMap(_)) => { @@ -528,7 +530,9 @@ impl VariableStore for Shell { } } Ok(Action::UpdateString(key, operator, ..)) => { - if operator == Operator::OptionalEqual && self.variables.get_ref(key.name).is_some() { + if operator == Operator::OptionalEqual + && self.variables.get_ref(key.name).is_some() + { continue; } match collected.remove(key.name) { diff --git a/src/lib/shell/mod.rs b/src/lib/shell/mod.rs index 8c49e96318c79d9fb5eca0ed6150d710db6584d2..a098e672b1cc2ae9921c849e313f11ce8fff8cfb 100644 --- a/src/lib/shell/mod.rs +++ b/src/lib/shell/mod.rs @@ -120,6 +120,7 @@ pub struct Shell { ignore_setting: IgnoreSetting, } +#[derive(Default)] pub struct ShellBuilder; impl ShellBuilder { diff --git a/src/lib/shell/pipe_exec/mod.rs b/src/lib/shell/pipe_exec/mod.rs index aefab2f9195f91a798af4b40f3cf7678d4348039..efe71b4295763cae42d0eeb7c330f2ec7357c911 100644 --- a/src/lib/shell/pipe_exec/mod.rs +++ b/src/lib/shell/pipe_exec/mod.rs @@ -815,9 +815,7 @@ pub(crate) fn pipe( ext_stdio_pipes = None; - if set_process_group(&mut pgid, current_pid) - && foreground - && !shell.is_library + if set_process_group(&mut pgid, current_pid) && foreground && !shell.is_library { let _ = sys::tcsetpgrp(0, pgid); } diff --git a/src/lib/shell/variables/mod.rs b/src/lib/shell/variables/mod.rs index 8b7c125a169c34b0e934bf0dbc9f9d400b626121..5b8d852685b3fab4ed4afc0d5dbf0fe9dfe34a97 100644 --- a/src/lib/shell/variables/mod.rs +++ b/src/lib/shell/variables/mod.rs @@ -127,25 +127,19 @@ impl fmt::Display for VariableType { VariableType::Alias(ref alias) => write!(f, "{}", **alias), VariableType::Array(ref array) => write!(f, "{}", array.join(" ")), VariableType::HashMap(ref map) => { - let mut format = - map.into_iter() - .fold(String::new(), |mut format, (_, var_type)| { - format.push_str(&format!("{}", var_type)); - format.push(' '); - format - }); - format.pop(); + let format = map + .iter() + .map(|(_, var_type)| format!("{}", var_type)) + .collect::<Vec<_>>() + .join(" "); write!(f, "{}", format) } VariableType::BTreeMap(ref map) => { - let mut format = - map.iter() - .fold(String::new(), |mut format, (_, var_type)| { - format.push_str(&format!("{}", var_type)); - format.push(' '); - format - }); - format.pop(); + let format = map + .iter() + .map(|(_, var_type)| format!("{}", var_type)) + .collect::<Vec<_>>() + .join(" "); write!(f, "{}", format) } _ => write!(f, ""),