From 8bb71a64e762f3c22029f2dd07ea8ff2e9874f7e Mon Sep 17 00:00:00 2001 From: Roman Shevchenko Date: Thu, 17 Sep 2015 12:13:04 +0300 Subject: [PATCH] [platform] restores prematurely deleted API (PY-16928) --- .../EncodingEnvironmentUtil.java | 24 +++++++++++++++++++ 1 file changed, 24 insertions(+) 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 f24f9f7def63..7055b126230a 100644 --- a/platform/platform-api/src/com/intellij/execution/configurations/EncodingEnvironmentUtil.java +++ b/platform/platform-api/src/com/intellij/execution/configurations/EncodingEnvironmentUtil.java @@ -16,9 +16,13 @@ package com.intellij.execution.configurations; import com.intellij.openapi.diagnostic.Logger; +import com.intellij.openapi.project.Project; import com.intellij.openapi.util.SystemInfo; +import com.intellij.openapi.vfs.encoding.EncodingManager; +import com.intellij.openapi.vfs.encoding.EncodingProjectManager; import com.intellij.util.EnvironmentUtil; import org.jetbrains.annotations.NotNull; +import org.jetbrains.annotations.Nullable; import java.nio.charset.Charset; import java.util.Locale; @@ -86,4 +90,24 @@ public class EncodingEnvironmentUtil { private static boolean isLocaleDefined(@NotNull Map env) { return env.containsKey(LC_ALL) || env.containsKey(LC_CTYPE) || env.containsKey(LANG); } + + /** @deprecated use {@link #setLocaleEnvironmentIfMac(GeneralCommandLine)} instead (to be removed in IDEA 16) */ + @SuppressWarnings("unused") + public static void fixDefaultEncodingIfMac(@NotNull GeneralCommandLine commandLine, @Nullable Project project) { + if (SystemInfo.isMac && !isLocaleDefined(commandLine)) { + setLocaleEnvironment(commandLine.getEnvironment(), getCharset(project)); + } + } + + /** @deprecated use {@link #setLocaleEnvironmentIfMac(Map, Charset)} instead (to be removed in IDEA 15) */ + @SuppressWarnings("unused") + public static void fixDefaultEncodingIfMac(@NotNull Map env, @Nullable Project project) { + if (SystemInfo.isMac && !isLocaleDefined(env)) { + setLocaleEnvironment(env, getCharset(project)); + } + } + + private static Charset getCharset(Project project) { + return (project != null ? EncodingProjectManager.getInstance(project) : EncodingManager.getInstance()).getDefaultCharset(); + } }