rust/hg-core/src/filepatterns.rs
changeset 44832 ad1ec40975aa
parent 44802 e0414fcd35e0
child 44833 1e9bfeaec9ba
--- a/rust/hg-core/src/filepatterns.rs	Thu May 07 16:56:03 2020 -0400
+++ b/rust/hg-core/src/filepatterns.rs	Thu May 07 23:52:08 2020 +0200
@@ -176,9 +176,7 @@
         return vec![];
     }
     match syntax {
-        // The `regex` crate adds `.*` to the start and end of expressions
-        // if there are no anchors, so add them.
-        PatternSyntax::Regexp => [b"^", &pattern[..], b"$"].concat(),
+        PatternSyntax::Regexp => pattern.to_owned(),
         PatternSyntax::RelRegexp => {
             // The `regex` crate accepts `**` while `re2` and Python's `re`
             // do not. Checking for `*` correctly triggers the same error all
@@ -196,15 +194,14 @@
         }
         PatternSyntax::RootFiles => {
             let mut res = if pattern == b"." {
-                vec![b'^']
+                vec![]
             } else {
                 // Pattern is a directory name.
-                [b"^", escape_pattern(pattern).as_slice(), b"/"].concat()
+                [escape_pattern(pattern).as_slice(), b"/"].concat()
             };
 
             // Anything after the pattern must be a non-directory.
             res.extend(b"[^/]+$");
-            res.push(b'$');
             res
         }
         PatternSyntax::RelGlob => {
@@ -216,7 +213,7 @@
             }
         }
         PatternSyntax::Glob | PatternSyntax::RootGlob => {
-            [b"^", glob_to_re(pattern).as_slice(), GLOB_SUFFIX].concat()
+            [glob_to_re(pattern).as_slice(), GLOB_SUFFIX].concat()
         }
         PatternSyntax::Include | PatternSyntax::SubInclude => unreachable!(),
     }
@@ -654,7 +651,7 @@
                 Path::new("")
             ))
             .unwrap(),
-            Some(br"^[^/]*\.o(?:/|$)".to_vec()),
+            Some(br"[^/]*\.o(?:/|$)".to_vec()),
         );
     }
 }