Browse Source

Fix replacement quoting for replaceAll in filter command

According to String.replaceAll JavaDoc:

"Note that backslashes (\) and dollar signs ($) in the replacement
string may cause the results to be different than if it were being
treated as a literal replacement string; see Matcher.replaceAll. Use
java.util.regex.Matcher.quoteReplacement to suppress the special meaning
of these characters, if desired."

Bug: 536318
Change-Id: Ib70cfec41bf73e14d23d94d14aee05a25b1e87f6
Signed-off-by: Markus Duft <markus.duft@ssi-schaefer.com>
stable-5.1
Markus Duft 6 years ago committed by Matthias Sohn
parent
commit
303adeb8bf
  1. 4
      org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java

4
org.eclipse.jgit/src/org/eclipse/jgit/treewalk/TreeWalk.java

@ -50,6 +50,7 @@ import java.io.IOException;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
import org.eclipse.jgit.annotations.Nullable;
import org.eclipse.jgit.api.errors.JGitInternalException;
@ -1438,7 +1439,8 @@ public class TreeWalk implements AutoCloseable, AttributesProvider {
return null;
}
return filterCommand.replaceAll("%f", //$NON-NLS-1$
QuotedString.BOURNE.quote((getPathString())));
Matcher.quoteReplacement(
QuotedString.BOURNE.quote((getPathString()))));
}
/**

Loading…
Cancel
Save