diff --git a/brush-core/src/expansion.rs b/brush-core/src/expansion.rs index dda309d6..36ec8f9f 100644 --- a/brush-core/src/expansion.rs +++ b/brush-core/src/expansion.rs @@ -375,7 +375,12 @@ impl<'a> WordExpander<'a> { word: &Option, ) -> Result, error::Error> { if let Some(word) = word { - Ok(Some(self.basic_expand_pattern(word).await?)) + let pattern = self + .basic_expand_pattern(word) + .await? + .set_extended_globbing(self.parser_options.enable_extended_globbing); + + Ok(Some(pattern)) } else { Ok(None) } @@ -810,6 +815,7 @@ impl<'a> WordExpander<'a> { } => { let expanded_parameter = self.expand_parameter(¶meter, indirect).await?; let expanded_pattern = self.basic_expand_opt_pattern(&pattern).await?; + transform_expansion(expanded_parameter, |s| { patterns::remove_smallest_matching_prefix(s.as_str(), &expanded_pattern) .map(|s| s.to_owned()) @@ -822,6 +828,7 @@ impl<'a> WordExpander<'a> { } => { let expanded_parameter = self.expand_parameter(¶meter, indirect).await?; let expanded_pattern = self.basic_expand_opt_pattern(&pattern).await?; + transform_expansion(expanded_parameter, |s| { patterns::remove_largest_matching_prefix(s.as_str(), &expanded_pattern) .map(|s| s.to_owned()) diff --git a/brush-core/src/patterns.rs b/brush-core/src/patterns.rs index 7ad501bc..5c1a9de8 100644 --- a/brush-core/src/patterns.rs +++ b/brush-core/src/patterns.rs @@ -382,7 +382,6 @@ fn pattern_to_regex_str( /// /// * `s` - The string to remove the prefix from. /// * `pattern` - The pattern to match. -/// * `enable_extended_globbing` - Whether or not to enable extended globbing (extglob). #[allow(clippy::ref_option)] pub(crate) fn remove_largest_matching_prefix<'a>( s: &'a str, @@ -405,7 +404,6 @@ pub(crate) fn remove_largest_matching_prefix<'a>( /// /// * `s` - The string to remove the prefix from. /// * `pattern` - The pattern to match. -/// * `enable_extended_globbing` - Whether or not to enable extended globbing (extglob). #[allow(clippy::ref_option)] pub(crate) fn remove_smallest_matching_prefix<'a>( s: &'a str, @@ -428,7 +426,6 @@ pub(crate) fn remove_smallest_matching_prefix<'a>( /// /// * `s` - The string to remove the suffix from. /// * `pattern` - The pattern to match. -/// * `enable_extended_globbing` - Whether or not to enable extended globbing (extglob). #[allow(clippy::ref_option)] pub(crate) fn remove_largest_matching_suffix<'a>( s: &'a str, @@ -451,7 +448,6 @@ pub(crate) fn remove_largest_matching_suffix<'a>( /// /// * `s` - The string to remove the suffix from. /// * `pattern` - The pattern to match. -/// * `enable_extended_globbing` - Whether or not to enable extended globbing (extglob). #[allow(clippy::ref_option)] pub(crate) fn remove_smallest_matching_suffix<'a>( s: &'a str,