From 1f400a987d4b70634f378c6e7912f6453d50cb99 Mon Sep 17 00:00:00 2001 From: "Gregory.Shrago" Date: Mon, 16 Feb 2015 14:08:17 +0300 Subject: [PATCH] just split ]]> into adjacent CDATA's --- .../util/src/com/intellij/xml/util/XmlStringUtil.java | 9 ++++----- .../testSrc/com/intellij/util/text/StringUtilTest.java | 6 +++--- 2 files changed, 7 insertions(+), 8 deletions(-) diff --git a/platform/util/src/com/intellij/xml/util/XmlStringUtil.java b/platform/util/src/com/intellij/xml/util/XmlStringUtil.java index 79b5079e97aa..2fd987a772a5 100644 --- a/platform/util/src/com/intellij/xml/util/XmlStringUtil.java +++ b/platform/util/src/com/intellij/xml/util/XmlStringUtil.java @@ -33,12 +33,11 @@ public class XmlStringUtil { @NotNull public static String wrapInCDATA(@NotNull String str) { StringBuilder sb = new StringBuilder(); - int cur = 0, next, len = str.length(); + int cur = 0, len = str.length(); while (cur < len) { - next = StringUtil.indexOf(str, CDATA_END, cur); - sb.append(CDATA_START).append(str.subSequence(cur, next = next < 0 ? len : next)).append(CDATA_END); - if (next < len) sb.append(escapeString(CDATA_END)); - cur = next + CDATA_END.length(); + int next = StringUtil.indexOf(str, CDATA_END, cur); + sb.append(CDATA_START).append(str.subSequence(cur, next = next < 0 ? len : next + 1)).append(CDATA_END); + cur = next; } return sb.toString(); } diff --git a/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java b/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java index a42aad232f63..d4df36477e2e 100644 --- a/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java +++ b/platform/util/testSrc/com/intellij/util/text/StringUtilTest.java @@ -367,8 +367,8 @@ public class StringUtilTest extends TestCase { public void testXmlWrapInCDATA() { assertEquals("", XmlStringUtil.wrapInCDATA("abcd")); - assertEquals("]]>", XmlStringUtil.wrapInCDATA("abcd]]>")); - assertEquals("]]>", XmlStringUtil.wrapInCDATA("abcd]]>efgh")); - assertEquals("]]>]]>]]>", XmlStringUtil.wrapInCDATA("123]]>]]>]]>", XmlStringUtil.wrapInCDATA("abcd]]>")); + assertEquals("efgh]]>", XmlStringUtil.wrapInCDATA("abcd]]>efgh")); + assertEquals("]]]>]]]>", XmlStringUtil.wrapInCDATA("123]]>]]>