@@ -145,6 +145,7 @@ impl Statistics {
145
145
}
146
146
}
147
147
148
+ #[ derive( Debug ) ]
148
149
enum Patterns {
149
150
String ( Vec < String > ) ,
150
151
Regex ( Vec < Regex > ) ,
@@ -154,14 +155,14 @@ impl Patterns {
154
155
fn any_match ( & self , entry : & str ) -> bool {
155
156
match self {
156
157
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 ( ) ) ,
158
159
}
159
160
}
160
161
161
162
fn all_match ( & self , entry : & str ) -> bool {
162
163
match self {
163
164
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 ( ) ) ,
165
166
}
166
167
}
167
168
}
@@ -234,15 +235,12 @@ impl From<ArgMatches> for ParsedInfo {
234
235
. unwrap ( )
235
236
. cloned ( )
236
237
. 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
+ } ) {
246
244
Patterns :: Regex (
247
245
patterns
248
246
. into_iter ( )
@@ -638,7 +636,7 @@ pub fn locate_main(args: &[&str]) -> i32 {
638
636
Error :: NoMatches => { }
639
637
_ => writeln ! ( & mut stderr( ) , "Error: {e}" ) . unwrap ( ) ,
640
638
}
641
- 1
639
+ e . code ( )
642
640
}
643
641
}
644
642
}
0 commit comments