From abcb4d75c186051d57b15cdb895c9081d2ef24b0 Mon Sep 17 00:00:00 2001 From: Gilbert Chen Date: Sun, 7 Apr 2019 22:43:36 -0400 Subject: [PATCH] Fixed a bug where filenames starting with i or e are mistakenly interpreted as regex --- src/duplicacy_utils.go | 2 +- src/duplicacy_utils_test.go | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/duplicacy_utils.go b/src/duplicacy_utils.go index 6fad983..5dda266 100644 --- a/src/duplicacy_utils.go +++ b/src/duplicacy_utils.go @@ -55,7 +55,7 @@ func IsEmptyFilter(pattern string) bool { } func IsUnspecifiedFilter(pattern string) bool { - if pattern[0] != '+' && pattern[0] != '-' && pattern[0] != 'i' && pattern[0] != 'e' { + if pattern[0] != '+' && pattern[0] != '-' && !strings.HasPrefix(pattern, "i:") && !strings.HasPrefix(pattern, "e:") { return true } else { return false diff --git a/src/duplicacy_utils_test.go b/src/duplicacy_utils_test.go index 82d508b..f53fa58 100644 --- a/src/duplicacy_utils_test.go +++ b/src/duplicacy_utils_test.go @@ -92,6 +92,17 @@ func TestMatchPattern(t *testing.T) { } } + for _, pattern := range []string{ "+", "-", "i:", "e:", "+a", "-a", "i:a", "e:a"} { + if IsUnspecifiedFilter(pattern) { + t.Errorf("pattern %s has a specified filter", pattern) + } + } + + for _, pattern := range []string{ "i", "e", "ia", "ib", "a", "b"} { + if !IsUnspecifiedFilter(pattern) { + t.Errorf("pattern %s does not have a specified filter", pattern) + } + } } func TestRateLimit(t *testing.T) {