diff --git a/src/corrections.rs b/src/corrections.rs index 4867082..6aea956 100644 --- a/src/corrections.rs +++ b/src/corrections.rs @@ -46,7 +46,7 @@ fn match_pattern(executable: &str, command: &str, error_msg: &str) -> Option Option Option { +fn check_condition(suggest: &str, command: &str, error_msg: &str) -> Option { if !suggest.starts_with('#') { return Some(suggest.to_owned()); } let mut lines = suggest.lines().collect::>(); - let conditions = lines.first().unwrap().trim().replacen('#', "", 1); - let mut conditions = conditions.trim_start_matches('[').to_string(); - for (i, line) in lines[1..].iter().enumerate() { + let mut conditions = String::new(); + for (i, line) in lines[0..].iter().enumerate() { conditions.push_str(line); if line.ends_with(']') { - lines = lines[i + 1..].to_vec(); + lines = lines[i..].to_vec(); break; } } - let conditions = conditions.split(',').collect::>(); + let conditions = conditions + .trim_start_matches(&['#', '[']) + .trim_end_matches(']') + .split(',').collect::>(); for condition in conditions { let (mut condition, arg) = condition.split_once('(').unwrap();