@@ -145,6 +145,7 @@ impl Statistics {
145145 }
146146}
147147
148+ #[ derive( Debug ) ]
148149enum Patterns {
149150 String ( Vec < String > ) ,
150151 Regex ( Vec < Regex > ) ,
@@ -154,14 +155,14 @@ impl Patterns {
154155 fn any_match ( & self , entry : & str ) -> bool {
155156 match self {
156157 Self :: String ( v) => v. iter ( ) . any ( |s| entry. contains ( s) ) ,
157- Self :: Regex ( v) => v. iter ( ) . any ( |r| r. is_match ( entry) ) ,
158+ Self :: Regex ( v) => v. iter ( ) . any ( |r| r. find ( entry) . is_some ( ) ) ,
158159 }
159160 }
160161
161162 fn all_match ( & self , entry : & str ) -> bool {
162163 match self {
163164 Self :: String ( v) => v. iter ( ) . all ( |s| entry. contains ( s) ) ,
164- Self :: Regex ( v) => v. iter ( ) . all ( |r| r. is_match ( entry) ) ,
165+ Self :: Regex ( v) => v. iter ( ) . all ( |r| r. find ( entry) . is_some ( ) ) ,
165166 }
166167 }
167168}
@@ -234,15 +235,12 @@ impl From<ArgMatches> for ParsedInfo {
234235 . unwrap ( )
235236 . cloned ( )
236237 . collect ( ) ;
237- let patterns = if let Some ( ty) = value
238- . get_flag ( "regex" )
239- . then ( || {
240- value
241- . get_one :: < String > ( "regextype" )
242- . and_then ( |s| RegexType :: from_str ( s. as_str ( ) ) . ok ( ) )
243- } )
244- . flatten ( )
245- {
238+ let patterns = if let Some ( ty) = value. get_flag ( "regex" ) . then ( || {
239+ value
240+ . get_one :: < String > ( "regextype" )
241+ . and_then ( |s| RegexType :: from_str ( s. as_str ( ) ) . ok ( ) )
242+ . unwrap_or ( RegexType :: Emacs )
243+ } ) {
246244 Patterns :: Regex (
247245 patterns
248246 . into_iter ( )
@@ -638,7 +636,7 @@ pub fn locate_main(args: &[&str]) -> i32 {
638636 Error :: NoMatches => { }
639637 _ => writeln ! ( & mut stderr( ) , "Error: {e}" ) . unwrap ( ) ,
640638 }
641- 1
639+ e . code ( )
642640 }
643641 }
644642}
0 commit comments