From b3e9626743892fb33350264a86a0033d5a9756be Mon Sep 17 00:00:00 2001 From: Gustav Karlsson Date: Fri, 29 Mar 2013 00:07:49 +0100 Subject: Added characters to be escaped in file name patterns Originally, characters could not be escaped in FileNameMatcher patterns. This breaks file name matching when escaped brackets "\[" and "\]" are used in the pattern. A fix has been implemented to allow for any character to be escaped by prepending it with a '\' Bug: 340715 Change-Id: Ie46fd211931fa09ef3a6a712bd1da3d7fb64c5e3 Signed-off-by: Gustav Karlsson --- .../eclipse/jgit/fnmatch/FileNameMatcherTest.java | 40 ++++++++++++++++++++++ 1 file changed, 40 insertions(+) (limited to 'org.eclipse.jgit.test') diff --git a/org.eclipse.jgit.test/tst/org/eclipse/jgit/fnmatch/FileNameMatcherTest.java b/org.eclipse.jgit.test/tst/org/eclipse/jgit/fnmatch/FileNameMatcherTest.java index ec0724406b..1db6c80304 100644 --- a/org.eclipse.jgit.test/tst/org/eclipse/jgit/fnmatch/FileNameMatcherTest.java +++ b/org.eclipse.jgit.test/tst/org/eclipse/jgit/fnmatch/FileNameMatcherTest.java @@ -801,6 +801,46 @@ public class FileNameMatcherTest { } } + @Test + public void testEscapedBracket1() throws Exception { + assertMatch("\\[", "[", true, false); + } + + @Test + public void testEscapedBracket2() throws Exception { + assertMatch("\\[[a]", "[", false, true); + } + + @Test + public void testEscapedBracket3() throws Exception { + assertMatch("\\[[a]", "a", false, false); + } + + @Test + public void testEscapedBracket4() throws Exception { + assertMatch("\\[[a]", "[a", true, false); + } + + @Test + public void testEscapedBracket5() throws Exception { + assertMatch("[a\\]]", "]", true, false); + } + + @Test + public void testEscapedBracket6() throws Exception { + assertMatch("[a\\]]", "a", true, false); + } + + @Test + public void testEscapedBackslash() throws Exception { + assertMatch("a\\\\b", "a\\b", true, false); + } + + @Test + public void testMultipleEscapedCharacters1() throws Exception { + assertMatch("\\]a?c\\*\\[d\\?\\]", "]abc*[d?]", true, false); + } + @Test public void testFilePathSimpleCase() throws Exception { assertFileNameMatch("a/b", "a/b", '/', true, false); -- cgit v1.2.3