ignore: fix gitignore parsing bug for trailing \/

When a glob pattern ended with a \/, and since we permit backslash
escapes, the glob parser gave a "dangling escape" error. Which is weird,
because the \ is clearly not dangling.

The issue is that the layer above the glob parser, the gitignore parser,
was stripping the trailing / so that it wouldn't be part of the matching
logic. Of course, stripping the trailing / while it is escaped without
removing the backslash escape is wrong. So we do that here.

Fixes #2236
This commit is contained in:
Andrew Gallant
2022-06-14 10:38:32 -04:00
parent eb4b389846
commit 9f0e88bcb1
3 changed files with 19 additions and 6 deletions

View File

@@ -1,5 +1,5 @@
13.0.1
======
TBD
===
Unreleased changes. Release notes have not yet been written.
Bug fixes:
@@ -8,6 +8,8 @@ Bug fixes:
Fix bug when using `-w` with a regex that can match the empty string.
* [BUG #1911](https://github.com/BurntSushi/ripgrep/issues/1911):
Disable mmap searching in all non-64-bit environments.
* [BUG #2236](https://github.com/BurntSushi/ripgrep/issues/2236):
Fix gitignore parsing bug where a trailing `\/` resulted in an error.
13.0.0 (2021-06-12)