summaryrefslogtreecommitdiffstats
path: root/ignore
diff options
context:
space:
mode:
authorAndrew Gallant <jamslam@gmail.com>2019-01-23 18:12:35 -0500
committerAndrew Gallant <jamslam@gmail.com>2019-01-23 18:12:35 -0500
commit23be3cf850386ec0d4d8724fb9bf5ddeaab2c27d (patch)
tree667cb25777094c7b296a1004f3f0f2df0de85526 /ignore
parentb48bbf527d9d533a6636fa829ee466ea4130f3a0 (diff)
ignore: fix handling of **
When deciding whether to add the `**/` prefix or not, we should choose not to add it if the pattern is simply a bare `**`. Previously, we were only not adding it if it was `**/`, which is correct, but we also need to do it for `**` since `**` can already match anywhere. There's likely a more principled solution to this, but this works for now. Fixes #1173
Diffstat (limited to 'ignore')
-rw-r--r--ignore/src/gitignore.rs4
1 files changed, 2 insertions, 2 deletions
diff --git a/ignore/src/gitignore.rs b/ignore/src/gitignore.rs
index 1a44e626..48d1bb4b 100644
--- a/ignore/src/gitignore.rs
+++ b/ignore/src/gitignore.rs
@@ -69,8 +69,7 @@ impl Glob {
/// Returns true if and only if this glob has a `**/` prefix.
fn has_doublestar_prefix(&self) -> bool {
- self.actual.starts_with("**/")
- || (self.actual == "**" && self.is_only_dir)
+ self.actual.starts_with("**/") || self.actual == "**"
}
}
@@ -710,6 +709,7 @@ mod tests {
ignored!(ig40, ROOT, "\\*", "*");
ignored!(ig41, ROOT, "\\a", "a");
ignored!(ig42, ROOT, "s*.rs", "sfoo.rs");
+ ignored!(ig43, ROOT, "**", "foo.rs");
not_ignored!(ignot1, ROOT, "amonths", "months");
not_ignored!(ignot2, ROOT, "monthsa", "months");