From: Sergey Simonchik Date: Sat, 8 Feb 2014 07:29:21 +0000 (+0400) Subject: WEB-10858 File Watchers plugin doesn't work X-Git-Tag: idea/134.1025^0 X-Git-Url: https://git.jetbrains.org/?p=idea%2Fcommunity.git;a=commitdiff_plain;h=05bb24eb443905e5fe7f54e94a9383b2a9f36a3c WEB-10858 File Watchers plugin doesn't work http://youtrack.jetbrains.com/issue/WEB-10858#comment=27-672181 --- diff --git a/platform/platform-api/src/com/intellij/execution/configurations/EncodingEnvironmentUtil.java b/platform/platform-api/src/com/intellij/execution/configurations/EncodingEnvironmentUtil.java index 79fff54a9a7f..9983a6c216e5 100644 --- a/platform/platform-api/src/com/intellij/execution/configurations/EncodingEnvironmentUtil.java +++ b/platform/platform-api/src/com/intellij/execution/configurations/EncodingEnvironmentUtil.java @@ -22,7 +22,6 @@ import com.intellij.openapi.vfs.CharsetToolkit; import com.intellij.openapi.vfs.encoding.EncodingManager; import com.intellij.openapi.vfs.encoding.EncodingProjectManager; import com.intellij.util.EnvironmentUtil; -import com.intellij.util.PlatformUtils; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; @@ -73,8 +72,7 @@ public class EncodingEnvironmentUtil { } if (commandLine.isPassParentEnvironment()) { // 'parentEnv' calculation logic should be kept in sync with GeneralCommandLine.setupEnvironment - Map parentEnv = PlatformUtils.isAppCode() ? System.getenv() // Temporarily fix for OC-8606 - : EnvironmentUtil.getEnvironmentMap(); + Map parentEnv = commandLine.isPassShellEnvironmentAsParent() ? EnvironmentUtil.getEnvironmentMap() : System.getenv(); if (isLocaleDefined(parentEnv)) { return true; } diff --git a/platform/platform-api/src/com/intellij/execution/configurations/GeneralCommandLine.java b/platform/platform-api/src/com/intellij/execution/configurations/GeneralCommandLine.java index a42a1bfab18a..893a548d262d 100644 --- a/platform/platform-api/src/com/intellij/execution/configurations/GeneralCommandLine.java +++ b/platform/platform-api/src/com/intellij/execution/configurations/GeneralCommandLine.java @@ -58,6 +58,7 @@ public class GeneralCommandLine implements UserDataHolder { private File myWorkDirectory = null; private final Map myEnvParams = new MyTHashMap(); private boolean myPassParentEnvironment = true; + private boolean myPassShellEnvironmentAsParent = !PlatformUtils.isAppCode(); private final ParametersList myProgramParams = new ParametersList(); private Charset myCharset = CharsetToolkit.getDefaultSystemCharset(); private boolean myRedirectErrorStream = false; @@ -142,6 +143,19 @@ public class GeneralCommandLine implements UserDataHolder { return myPassParentEnvironment; } + /** + * @param passShellEnvironmentAsParent if true, a shell (Terminal.app) environment will be used as parent (see {@link EnvironmentUtil#getEnvironmentMap}). + * Otherwise, {@link System#getenv()} will be used. + */ + public void setPassShellEnvironmentAsParent(boolean passShellEnvironmentAsParent) { + // Temporarily fix for OC-8606 + myPassShellEnvironmentAsParent = passShellEnvironmentAsParent; + } + + public boolean isPassShellEnvironmentAsParent() { + return myPassShellEnvironmentAsParent; + } + public void addParameters(final String... parameters) { for (String parameter : parameters) { addParameter(parameter); @@ -278,8 +292,7 @@ public class GeneralCommandLine implements UserDataHolder { environment.clear(); if (myPassParentEnvironment) { - environment.putAll(PlatformUtils.isAppCode() ? System.getenv() // Temporarily fix for OC-8606 - : EnvironmentUtil.getEnvironmentMap()); + environment.putAll(myPassShellEnvironmentAsParent ? EnvironmentUtil.getEnvironmentMap() : System.getenv()); } if (!myEnvParams.isEmpty()) {