From 2497ba5bcb0499b8e78c5bacb369f9eec9fc272c Mon Sep 17 00:00:00 2001 From: iff Date: Mon, 31 Jul 2023 19:17:46 +0200 Subject: [PATCH] fix: wrong condition parsing --- src/corrections.rs | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) 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();