mirror of
https://github.com/octoleo/syncthing.git
synced 2024-12-22 02:48:59 +00:00
Handle multiple case insensitivity prefixes in ignores (fixes #2134)
This commit is contained in:
parent
9b6681d543
commit
e312fdd4f8
@ -38,9 +38,10 @@ func Convert(pattern string, flags int) (*regexp.Regexp, error) {
|
||||
}
|
||||
}
|
||||
|
||||
// Support case insensitive ignores
|
||||
ignore := strings.TrimPrefix(pattern, "(?i)")
|
||||
if ignore != pattern {
|
||||
// Support case insensitive ignores. We do the loop because we may in some
|
||||
// circumstances end up with multiple insensitivity prefixes
|
||||
// ("(?i)(?i)foo"), which should be accepted.
|
||||
for ignore := strings.TrimPrefix(pattern, "(?i)"); ignore != pattern; ignore = strings.TrimPrefix(pattern, "(?i)") {
|
||||
flags |= CaseFold
|
||||
pattern = ignore
|
||||
}
|
||||
|
@ -54,6 +54,7 @@ var testcases = []testcase{
|
||||
|
||||
{"foo.txt", "foo.TXT", CaseFold, true},
|
||||
{"(?i)foo.txt", "foo.TXT", 0, true},
|
||||
{"(?i)(?i)foo.txt", "foo.TXT", 0, true}, // repeated prefix should be fine
|
||||
{"(?i)**foo.txt", "/dev/tmp/foo.TXT", 0, true},
|
||||
{"(?i)!**foo.txt", "/dev/tmp/foo.TXT", 0, false},
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user