From fd61600b87b0f11cbaeef89cfa738a045abf9bca Mon Sep 17 00:00:00 2001 From: Alexey Pegov Date: Thu, 15 Oct 2009 18:19:41 +0400 Subject: [PATCH] fix module relative macro replacements: do not step out of the project dir --- .../intellij/openapi/components/impl/ModulePathMacroManager.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/platform/lang-impl/src/com/intellij/openapi/components/impl/ModulePathMacroManager.java b/platform/lang-impl/src/com/intellij/openapi/components/impl/ModulePathMacroManager.java index 8ef9137867..190edb0a76 100644 --- a/platform/lang-impl/src/com/intellij/openapi/components/impl/ModulePathMacroManager.java +++ b/platform/lang-impl/src/com/intellij/openapi/components/impl/ModulePathMacroManager.java @@ -85,12 +85,19 @@ public class ModulePathMacroManager extends BasePathMacroManager /*ProjectPathMa // [dsl]: Q? //if(!f.exists()) return; + final VirtualFile baseDir = myModule.getProject().getBaseDir(); + final String projectParent = baseDir != null && baseDir.getParent() != null ? PathMacroMap.quotePath(baseDir.getParent().getPath()): null; + String macro = "$" + PathMacrosImpl.MODULE_DIR_MACRO_NAME + "$"; boolean check = false; while (f != null) { @NonNls String path = PathMacroMap.quotePath(f.getAbsolutePath()); String s = macro; + if (projectParent != null && path.equals(projectParent)) { + break; // never step out of the project dir + } + if (StringUtil.endsWithChar(path, '/')) s += "/"; if (path.equals("/")) break; -- 2.11.4.GIT