diff --git a/platform/util/src/com/intellij/openapi/application/PathManager.java b/platform/util/src/com/intellij/openapi/application/PathManager.java index c9b613dc37b6..86c01bbba103 100644 --- a/platform/util/src/com/intellij/openapi/application/PathManager.java +++ b/platform/util/src/com/intellij/openapi/application/PathManager.java @@ -15,10 +15,7 @@ */ package com.intellij.openapi.application; -import com.intellij.openapi.util.NamedJDOMExternalizable; -import com.intellij.openapi.util.Pair; -import com.intellij.openapi.util.SystemInfo; -import com.intellij.openapi.util.SystemInfoRt; +import com.intellij.openapi.util.*; import com.intellij.openapi.util.io.FileUtil; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.io.URLUtil; @@ -399,7 +396,8 @@ public class PathManager { value = ""; } - s = m.replaceAll(value); + s = StringUtil.replace(s, m.group(), value); + m = PROPERTY_REF.matcher(s); } return s; diff --git a/platform/util/testSrc/com/intellij/openapi/application/PathManagerTest.java b/platform/util/testSrc/com/intellij/openapi/application/PathManagerTest.java index c7deac22a25e..f8245c7c3b93 100644 --- a/platform/util/testSrc/com/intellij/openapi/application/PathManagerTest.java +++ b/platform/util/testSrc/com/intellij/openapi/application/PathManagerTest.java @@ -48,9 +48,10 @@ public class PathManagerTest { String home = System.clearProperty(PathManager.PROPERTY_HOME_PATH); try { - assertEquals(PathManager.getHomePath() + "/build.txt", PathManager.substituteVars("${idea.home.path}/build.txt")); assertEquals(PathManager.getHomePath() + "/build.txt", PathManager.substituteVars("${idea.home}/build.txt")); - assertEquals("/opt/idea/build.txt", PathManager.substituteVars("${idea.home.path}/build.txt", "/opt/idea")); + assertEquals(PathManager.getHomePath() + "\\build.txt", PathManager.substituteVars("${idea.home.path}\\build.txt")); + assertEquals("/opt/idea/build.txt", PathManager.substituteVars("${idea.home}/build.txt", "/opt/idea")); + assertEquals("C:\\opt\\idea\\build.txt", PathManager.substituteVars("${idea.home.path}\\build.txt", "C:\\opt\\idea")); } finally { if (home != null) {