From d58a555f4d98f49efa100eb28d9814c1274d34f6 Mon Sep 17 00:00:00 2001 From: Robin Malfait Date: Mon, 28 Oct 2024 19:47:21 +0100 Subject: [PATCH] rename `input` to `pattern` And make sure that we break once we find a `!`. --- crates/oxide/src/glob.rs | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/crates/oxide/src/glob.rs b/crates/oxide/src/glob.rs index 94610097c..2f60fbf7e 100644 --- a/crates/oxide/src/glob.rs +++ b/crates/oxide/src/glob.rs @@ -134,31 +134,31 @@ pub fn optimize_patterns(entries: &Vec) -> Vec { // Expanded input: `../project-b/**/*.html` & `../project-b/**/*.js` // Split on first input: ("../project-b", "**/*.html") // Split on second input: ("../project-b", "**/*.js") -fn split_pattern(input: &str) -> (Option, Option) { +fn split_pattern(pattern: &str) -> (Option, Option) { // No dynamic parts, so we can just return the input as-is. - if !input.contains('*') { - return (Some(input.to_owned()), None); + if !pattern.contains('*') { + return (Some(pattern.to_owned()), None); } let mut last_slash_position = None; - for (i, c) in input.char_indices() { + for (i, c) in pattern.char_indices() { if c == '/' { last_slash_position = Some(i); } - if c == '*' { + if c == '*' || c == '!' { break; } } // Very first character is a `*`, therefore there is no static part, only a dynamic part. let Some(last_slash_position) = last_slash_position else { - return (None, Some(input.to_owned())); + return (None, Some(pattern.to_owned())); }; - let static_part = input[..last_slash_position].to_owned(); - let dynamic_part = input[last_slash_position + 1..].to_owned(); + let static_part = pattern[..last_slash_position].to_owned(); + let dynamic_part = pattern[last_slash_position + 1..].to_owned(); let static_part = (!static_part.is_empty()).then_some(static_part); let dynamic_part = (!dynamic_part.is_empty()).then_some(dynamic_part);