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>
This commit is contained in:
Markus Duft 2018-08-30 08:27:37 +02:00 committed by Matthias Sohn
parent c857e7f09b
commit 303adeb8bf
1 changed files with 3 additions and 1 deletions

View File

@ -50,6 +50,7 @@
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 String getFilterCommand(String filterCommandType)
return null;
}
return filterCommand.replaceAll("%f", //$NON-NLS-1$
QuotedString.BOURNE.quote((getPathString())));
Matcher.quoteReplacement(
QuotedString.BOURNE.quote((getPathString()))));
}
/**