From 7c757e3b61648e804a489c1a256e22d4d49148b1 Mon Sep 17 00:00:00 2001 From: Gregory Shrago Date: Thu, 19 Nov 2009 20:39:49 +0300 Subject: [PATCH] IDEADEV-41475 Edit HTML fragment: Adds unnecessary escapes --- .../src/com/intellij/openapi/util/text/StringUtil.java | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) 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 98d16895c1..b327b4958b 100644 --- a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java +++ b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java @@ -418,6 +418,10 @@ public class StringUtil { } public static void escapeStringCharacters(int length, final String str, @NotNull @NonNls StringBuilder buffer) { + escapeStringCharacters(length, str, "\"", buffer); + } + + public static StringBuilder escapeStringCharacters(int length, final String str, String additionalChars, @NotNull @NonNls StringBuilder buffer) { for (int idx = 0; idx < length; idx++) { char ch = str.charAt(idx); switch (ch) { @@ -441,16 +445,15 @@ public class StringUtil { buffer.append("\\r"); break; - case'\"': - buffer.append("\\\""); - break; - case'\\': buffer.append("\\\\"); break; default: - if (Character.isISOControl(ch)) { + if (additionalChars != null && additionalChars.indexOf(ch) > -1) { + buffer.append("\\").append(ch); + } + else if (Character.isISOControl(ch)) { String hexCode = Integer.toHexString(ch).toUpperCase(); buffer.append("\\u"); int paddingCount = 4 - hexCode.length(); @@ -464,6 +467,7 @@ public class StringUtil { } } } + return buffer; } @NotNull public static String escapeStringCharacters(@NotNull String s) { -- 2.11.4.GIT