diff --git a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java index b49f21d55184..dcb3697ac890 100644 --- a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java +++ b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java @@ -1720,7 +1720,7 @@ public class StringUtil extends StringUtilRt { } @NotNull - private static String escapeChar(@NotNull final String str, final char character) { + public static String escapeChar(@NotNull final String str, final char character) { final StringBuilder buf = new StringBuilder(str); escapeChar(buf, character); return buf.toString(); diff --git a/plugins/git4idea/src/git4idea/log/GitLogProvider.java b/plugins/git4idea/src/git4idea/log/GitLogProvider.java index 32d96fc5f73f..7ea80c8b80f3 100644 --- a/plugins/git4idea/src/git4idea/log/GitLogProvider.java +++ b/plugins/git4idea/src/git4idea/log/GitLogProvider.java @@ -222,7 +222,7 @@ public class GitLogProvider implements VcsLogProvider { return filter.getUserName(root); } }); - filterParameters.add(prepareParameter("author", authorFilter)); + filterParameters.add(prepareParameter("author", StringUtil.escapeChar(StringUtil.escapeBackSlashes(authorFilter), '|'))); } if (!dateFilters.isEmpty()) { @@ -240,7 +240,7 @@ public class GitLogProvider implements VcsLogProvider { LOG.warn("Expected only one text filter: " + textFilters); } else if (!textFilters.isEmpty()) { - String textFilter = textFilters.iterator().next().getText(); + String textFilter = StringUtil.escapeBackSlashes(textFilters.iterator().next().getText()); filterParameters.add(prepareParameter("grep", textFilter)); } @@ -278,12 +278,11 @@ public class GitLogProvider implements VcsLogProvider { } private static String prepareParameter(String paramName, String value) { - // no value quoting needed, because the parameter itself will be quoted by GeneralCommandLine - return "--" + paramName + "=" + StringUtil.escapeBackSlashes(value); + return "--" + paramName + "=" + value; // no value quoting needed, because the parameter itself will be quoted by GeneralCommandLine } private static String joinFilters(Collection filters, Function toString) { - return StringUtil.join(filters, toString, "\\|"); + return StringUtil.join(filters, toString, "|"); } @Nullable