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 63fe7de8a65a..acd5d2068407 100644 --- a/platform/util/src/com/intellij/openapi/util/text/StringUtil.java +++ b/platform/util/src/com/intellij/openapi/util/text/StringUtil.java @@ -493,6 +493,15 @@ public class StringUtil { @NotNull String str, @Nullable String additionalChars, @NotNull @NonNls StringBuilder buffer) { + return escapeStringCharacters(length, str, additionalChars, true, buffer); + } + + @NotNull + public static StringBuilder escapeStringCharacters(int length, + @NotNull String str, + @Nullable String additionalChars, + boolean escapeSlash, + @NotNull @NonNls StringBuilder buffer) { for (int idx = 0; idx < length; idx++) { char ch = str.charAt(idx); switch (ch) { @@ -516,12 +525,11 @@ public class StringUtil { buffer.append("\\r"); break; - case '\\': - buffer.append("\\\\"); - break; - default: - if (additionalChars != null && additionalChars.indexOf(ch) > -1) { + if (escapeSlash && ch == '\\') { + buffer.append("\\\\"); + } + else if (additionalChars != null && additionalChars.indexOf(ch) > -1) { buffer.append("\\").append(ch); } else if (Character.isISOControl(ch)) { diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/XValueNodeImpl.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/XValueNodeImpl.java index 6353017b54ac..2dc6bc70e05b 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/XValueNodeImpl.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/impl/ui/tree/nodes/XValueNodeImpl.java @@ -76,8 +76,7 @@ public class XValueNodeImpl extends XValueContainerNode implements XValu } public void setPresentation(@NonNls final String name, @Nullable final Icon icon, @NonNls @Nullable final String type, @NonNls @NotNull final String separator, - @NonNls @NotNull final String value, - final boolean hasChildren) { + @NonNls @NotNull final String value, final boolean hasChildren) { DebuggerUIUtil.invokeOnEventDispatch(new Runnable() { public void run() { setIcon(icon); @@ -116,7 +115,7 @@ public class XValueNodeImpl extends XValueContainerNode implements XValu final StringBuilder builder = StringBuilderSpinAllocator.alloc(); String value; try { - StringUtil.escapeStringCharacters(myValue.length(), myValue, null, builder); + StringUtil.escapeStringCharacters(myValue.length(), myValue, null, false, builder); value = builder.toString(); } finally {