diff --git a/platform/util/src/com/intellij/util/EnvironmentUtil.java b/platform/util/src/com/intellij/util/EnvironmentUtil.java index e8e8c02866e6..e0e2e60dda87 100644 --- a/platform/util/src/com/intellij/util/EnvironmentUtil.java +++ b/platform/util/src/com/intellij/util/EnvironmentUtil.java @@ -273,12 +273,11 @@ public class EnvironmentUtil { } @NotNull - public static Map parseEnv(String text) throws Exception { + public static Map parseEnv(String... lines) throws Exception { Set toIgnore = new HashSet(Arrays.asList("_", "PWD", "SHLVL", DISABLE_OMZ_AUTO_UPDATE, INTELLIJ_ENVIRONMENT_READER)); Map env = System.getenv(); Map newEnv = new HashMap(); - String[] lines = text.split("\0"); for (String line : lines) { int pos = line.indexOf('='); if (pos <= 0) { @@ -297,6 +296,13 @@ public class EnvironmentUtil { return newEnv; } + @NotNull + private static Map parseEnv(String text) throws Exception { + String[] lines = text.split("\0"); + + return parseEnv(lines); + } + private static int waitAndTerminateAfter(@NotNull Process process, int timeoutMillis) { Integer exitCode = waitFor(process, timeoutMillis); if (exitCode != null) { diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/attach/osHandlers/AttachOSHandler.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/attach/osHandlers/AttachOSHandler.java index 0346910f2b24..bf68adc8c0bd 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/attach/osHandlers/AttachOSHandler.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/attach/osHandlers/AttachOSHandler.java @@ -45,8 +45,7 @@ public abstract class AttachOSHandler { } if(myEnvironment == null) { - final String envString = myHost.getProcessOutput(ENV_COMMAND_LINE).getStdout(); - myEnvironment = EnvironmentUtil.parseEnv(envString); + myEnvironment = EnvironmentUtil.parseEnv(myHost.getProcessOutput(ENV_COMMAND_LINE).getStdout().split("\n")); } return myEnvironment.get(name); diff --git a/platform/xdebugger-impl/src/com/intellij/xdebugger/attach/osHandlers/UnixAttachOSHandler.java b/platform/xdebugger-impl/src/com/intellij/xdebugger/attach/osHandlers/UnixAttachOSHandler.java index 21e5f026228e..524bfc9a77d1 100644 --- a/platform/xdebugger-impl/src/com/intellij/xdebugger/attach/osHandlers/UnixAttachOSHandler.java +++ b/platform/xdebugger-impl/src/com/intellij/xdebugger/attach/osHandlers/UnixAttachOSHandler.java @@ -85,7 +85,7 @@ public abstract class UnixAttachOSHandler extends AttachOSHandler { commands.add("-c"); commands.add(String.format(GET_PROCESS_USER, pid)); try { - return myHost.getProcessOutput(new GeneralCommandLine(commands)).getStdout().equals(getenv("USER")); + return myHost.getProcessOutput(new GeneralCommandLine(commands)).getStdout().trim().equals(getenv("USER")); } catch (Exception e) { LOGGER.warn("Failed to compare users", e);