From 2a62d586213af5307a5188c68be2370d81efdf32 Mon Sep 17 00:00:00 2001 From: jantje Date: Fri, 19 Jun 2020 15:35:27 +0200 Subject: [PATCH] Bug 564123 Treat environment and build variable case sensitively Remove all equalIgnoreCase and equal with uppercasing for environment variables Change-Id: Ic15974b5fb62413c7b1826ced544ff6d4a8eba2f Signed-off-by: jantje --- .../AutotoolsEnvironmentVariableSupplier.java | 6 +-- .../cdt/build/gcc/core/GCCToolChain.java | 2 +- .../make/internal/core/BuildInfoFactory.java | 7 ---- .../cdt/make/internal/core/MakeTarget.java | 8 ---- .../tests/ManagedBuildEnvironmentTests.java | 41 ++++++++----------- .../META-INF/MANIFEST.MF | 2 +- .../cdt/managedbuilder/core/IBuilder.java | 8 ---- .../envvar/IEnvironmentVariableProvider.java | 6 --- .../internal/buildmodel/BuildDescription.java | 8 ++-- .../managedbuilder/internal/core/Builder.java | 19 --------- .../core/GeneratedMakefileBuilder.java | 6 +-- .../internal/core/ManagedBuildInfo.java | 6 +-- .../envvar/EnvironmentVariableProvider.java | 5 --- .../StoredBuildPathEnvironmentContainer.java | 5 +-- .../macros/BuildfileMacroSubstitutor.java | 13 +----- .../ManagedBuildCPathEntryContainer.java | 6 +-- .../AbstractBuiltinSpecsDetector.java | 5 +-- .../META-INF/MANIFEST.MF | 4 +- .../META-INF/MANIFEST.MF | 4 +- .../ui/properties/NewVarDialog.java | 2 +- .../cdt/utils/spawner/EnvironmentReader.java | 3 +- .../org/eclipse/cdt/core/CommandLauncher.java | 3 -- .../envvar/IEnvironmentVariableManager.java | 6 --- .../internal/core/envvar/EnvVarCollector.java | 7 ---- .../envvar/EnvironmentVariableManager.java | 5 --- .../envvar/EnvVarOperationProcessor.java | 4 -- .../cdt/utils/envvar/StorableEnvironment.java | 3 -- .../CrossEnvironmentVariableSupplier.java | 4 +- .../guide/deprecated_API_removals.html | 17 +++++++- .../tm/terminal/view/core/utils/Env.java | 3 +- 30 files changed, 61 insertions(+), 157 deletions(-) diff --git a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsEnvironmentVariableSupplier.java b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsEnvironmentVariableSupplier.java index 763cf01ec86..4bf233c64a9 100644 --- a/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsEnvironmentVariableSupplier.java +++ b/build/org.eclipse.cdt.autotools.core/src/org/eclipse/cdt/internal/autotools/core/AutotoolsEnvironmentVariableSupplier.java @@ -19,7 +19,6 @@ import org.eclipse.cdt.managedbuilder.core.IConfiguration; import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable; import org.eclipse.cdt.managedbuilder.envvar.IConfigurationEnvironmentVariableSupplier; import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider; -import org.eclipse.core.runtime.Platform; /** * Supplies some default environment variables for the Autotools toolchain. For @@ -40,10 +39,7 @@ public class AutotoolsEnvironmentVariableSupplier implements IConfigurationEnvir } private static boolean isVar(String name) { - // Windows has case insensitive env var names - return Platform.getOS().equals(Platform.OS_WIN32) - ? name.equalsIgnoreCase(VerboseEnvironmentVariable.VERBOSE_VAR_NAME) - : name.equals(VerboseEnvironmentVariable.VERBOSE_VAR_NAME); + return name.equals(VerboseEnvironmentVariable.VERBOSE_VAR_NAME); } private static IBuildEnvironmentVariable create() { diff --git a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCToolChain.java b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCToolChain.java index 16fff2dd9bf..8b1631594f6 100644 --- a/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCToolChain.java +++ b/build/org.eclipse.cdt.build.gcc.core/src/org/eclipse/cdt/build/gcc/core/GCCToolChain.java @@ -122,7 +122,7 @@ public class GCCToolChain extends PlatformObject implements IToolChain { IEnvironmentVariable pathVar = null; if (envVars != null) { for (IEnvironmentVariable envVar : envVars) { - if (envVar.getName().equalsIgnoreCase("PATH")) { //$NON-NLS-1$ + if (envVar.getName().equals("PATH")) { //$NON-NLS-1$ pathVar = envVar; } } diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java index 162cdeb1229..6685e854c8f 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/BuildInfoFactory.java @@ -46,7 +46,6 @@ import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.Preferences; import org.eclipse.core.runtime.Status; import org.eclipse.core.variables.VariablesPlugin; -import org.eclipse.osgi.service.environment.Constants; public class BuildInfoFactory { @@ -115,14 +114,8 @@ public class BuildInfoFactory { public Map getExpandedEnvironment() { Map env = getEnvironment(); HashMap envMap = new HashMap<>(env.entrySet().size()); - boolean win32 = Platform.getOS().equals(Constants.OS_WIN32); for (Map.Entry entry : env.entrySet()) { String key = entry.getKey(); - if (win32) { - // Win32 vars are case insensitive. Uppercase everything so - // that (for example) "pAtH" will correctly replace "PATH" - key = key.toUpperCase(); - } String value = entry.getValue(); // translate any string substitution variables String translated = value; diff --git a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java index 3648088fa56..6d6f2a485fb 100644 --- a/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java +++ b/build/org.eclipse.cdt.make.core/src/org/eclipse/cdt/make/internal/core/MakeTarget.java @@ -33,11 +33,9 @@ import org.eclipse.core.runtime.CoreException; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.IProgressMonitor; import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.PlatformObject; import org.eclipse.core.runtime.SubMonitor; import org.eclipse.core.variables.VariablesPlugin; -import org.eclipse.osgi.service.environment.Constants; public class MakeTarget extends PlatformObject implements IMakeTarget { private final static int USE_PROJECT_ENV_SETTING = 3; @@ -245,14 +243,8 @@ public class MakeTarget extends PlatformObject implements IMakeTarget { } HashMap envMap = new HashMap<>(env.entrySet().size()); - boolean win32 = Platform.getOS().equals(Constants.OS_WIN32); for (Entry entry : env.entrySet()) { String key = entry.getKey(); - if (win32) { - // Win32 vars are case insensitive. Uppercase everything so - // that (for example) "pAtH" will correctly replace "PATH" - key = key.toUpperCase(); - } String value = entry.getValue(); // translate any string substitution variables String translated = value; diff --git a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildEnvironmentTests.java b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildEnvironmentTests.java index 42e64fdaf61..09b0bee4a29 100644 --- a/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildEnvironmentTests.java +++ b/build/org.eclipse.cdt.managedbuilder.core.tests/tests/org/eclipse/cdt/managedbuilder/core/tests/ManagedBuildEnvironmentTests.java @@ -14,11 +14,11 @@ package org.eclipse.cdt.managedbuilder.core.tests; +import org.eclipse.cdt.core.envvar.IEnvironmentVariable; import org.eclipse.cdt.core.testplugin.ResourceHelper; import org.eclipse.cdt.managedbuilder.core.IConfiguration; import org.eclipse.cdt.managedbuilder.core.IManagedProject; import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; -import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable; import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentBuildPathsChangeListener; import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider; import org.eclipse.core.resources.IProject; @@ -85,12 +85,12 @@ public class ManagedBuildEnvironmentTests extends TestCase { doInit(); IConfiguration cfg = mproj.getConfigurations()[0]; // CWD/PWD vars should NOT be overwritten anywhere - IBuildEnvironmentVariable a = envProvider.getVariable(NAME_CWD, cfg, true, false); + IEnvironmentVariable a = envProvider.getVariable(NAME_CWD, cfg, false); assertNotNull(a); if (VAL_CWDPWD.equals(a.getValue())) fail("CWD should not be rewritten !"); //$NON-NLS-1$ - a = envProvider.getVariable(NAME_PWD, cfg, true, false); + a = envProvider.getVariable(NAME_PWD, cfg, false); assertNotNull(a); if (VAL_CWDPWD.equals(a.getValue())) fail("PWD should not be rewritten !"); //$NON-NLS-1$ @@ -128,28 +128,20 @@ public class ManagedBuildEnvironmentTests extends TestCase { public void testEnvGetParams() { doInit(); IEnvironmentVariableProvider envProvider = ManagedBuildManager.getEnvironmentVariableProvider(); - IBuildEnvironmentVariable x = null; - IBuildEnvironmentVariable y = null; + + // if "path" and "PATH" exist they should be equal + IEnvironmentVariable x = envProvider.getVariable("PATH", mproj.getConfigurations()[0], false); + IEnvironmentVariable y = envProvider.getVariable("path", mproj.getConfigurations()[0], false); + assertNotNull(x); + if (y != null) { + assertFalse(x.getName().equals(y.getName())); + } + if (System.getProperty("os.name").toLowerCase().startsWith("windows")) { //$NON-NLS-1$ //$NON-NLS-2$ assertEquals(envProvider.getDefaultDelimiter(), DEL_WIN); - assertFalse(envProvider.isVariableCaseSensitive()); - // these var instances are different although contents is equal. - x = envProvider.getVariable("PATH", mproj.getConfigurations()[0], true, false); - assertNotNull(x); - y = envProvider.getVariable("path", mproj.getConfigurations()[0], true, false); - assertNotNull(y); - assertEquals(x.getName(), y.getName()); - assertEquals(x.getValue(), y.getValue()); } else { assertEquals(envProvider.getDefaultDelimiter(), DEL_UNIX); - assertTrue(envProvider.isVariableCaseSensitive()); - // "path" is different var (may absent); - x = envProvider.getVariable("PATH", mproj.getConfigurations()[0], true, false); - assertNotNull(x); - y = envProvider.getVariable("path", mproj.getConfigurations()[0], true, false); - if (y != null) { - assertFalse(x.getName().equals(y.getName())); - } + } } @@ -158,18 +150,17 @@ public class ManagedBuildEnvironmentTests extends TestCase { */ public void testEnvProvider() { doInit(); - IBuildEnvironmentVariable a = envProvider.getVariable(TestMacro.PRJ_VAR, mproj.getConfigurations()[0], true, - false); + IEnvironmentVariable a = envProvider.getVariable(TestMacro.PRJ_VAR, mproj.getConfigurations()[0], false); assertNotNull(a); assertEquals(TestMacro.PRJ_VAR + mproj.getName(), a.getValue()); IConfiguration[] cfgs = mproj.getConfigurations(); - a = envProvider.getVariable(TestMacro.CFG_VAR, cfgs[0], true, false); + a = envProvider.getVariable(TestMacro.CFG_VAR, cfgs[0], false); assertNotNull(a); assertEquals(TestMacro.CFG_VAR + cfgs[0].getName(), a.getValue()); // no provider for another configurations - a = envProvider.getVariable(TestMacro.CFG_VAR, cfgs[1], true, false); + a = envProvider.getVariable(TestMacro.CFG_VAR, cfgs[1], false); assertNull(a); } diff --git a/build/org.eclipse.cdt.managedbuilder.core/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.managedbuilder.core/META-INF/MANIFEST.MF index 6f16afc19a2..4d09072bbf8 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/META-INF/MANIFEST.MF +++ b/build/org.eclipse.cdt.managedbuilder.core/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.core; singleton:=true -Bundle-Version: 8.9.0.qualifier +Bundle-Version: 9.0.0.qualifier Bundle-Activator: org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin Bundle-Vendor: %providerName Bundle-Localization: plugin diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java index 756f1adb36a..7c21837bad7 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/core/IBuilder.java @@ -46,7 +46,6 @@ public interface IBuilder extends IHoldsOptions, IMakeBuilderInfo { public static final String CONVERT_TO_ID = "convertToId"; //$NON-NLS-1$ public static final String VARIABLE_FORMAT = "variableFormat"; //$NON-NLS-1$ - public static final String IS_VARIABLE_CASE_SENSITIVE = "isVariableCaseSensitive"; //$NON-NLS-1$ public static final String RESERVED_MACRO_NAMES = "reservedMacroNames"; //$NON-NLS-1$ public static final String RESERVED_MACRO_NAME_SUPPLIER = "reservedMacroNameSupplier"; //$NON-NLS-1$ public static final String IS_SYSTEM = "isSystem"; //$NON-NLS-1$ @@ -273,13 +272,6 @@ public interface IBuilder extends IHoldsOptions, IMakeBuilderInfo { */ public String getBuilderVariablePattern(); - /** - * Returns whether the builder supports case sensitive variables or not - * - * @return boolean - */ - public boolean isVariableCaseSensitive(); - /** * Returns an array of Strings representing the patterns of the builder/buildfile-generator * reserved variables diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/envvar/IEnvironmentVariableProvider.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/envvar/IEnvironmentVariableProvider.java index 09326b88c61..1ce5e814a91 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/envvar/IEnvironmentVariableProvider.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/envvar/IEnvironmentVariableProvider.java @@ -101,12 +101,6 @@ public interface IEnvironmentVariableProvider { */ public String getDefaultDelimiter(); - /** - * @return true if the OS supports case sensitive variables (Unix-like systems) or false - * if it does not (Win32 systems) - */ - public boolean isVariableCaseSensitive(); - /** * This method is defined to be used basically by the UI classes and should not be used by the * tool-integrator diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/buildmodel/BuildDescription.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/buildmodel/BuildDescription.java index 629c4a11d84..aefa5263b7c 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/buildmodel/BuildDescription.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/buildmodel/BuildDescription.java @@ -26,6 +26,7 @@ import java.util.Map.Entry; import java.util.Set; import java.util.Vector; +import org.eclipse.cdt.core.envvar.IEnvironmentVariable; import org.eclipse.cdt.core.settings.model.CSourceEntry; import org.eclipse.cdt.core.settings.model.ICConfigurationDescription; import org.eclipse.cdt.core.settings.model.ICSettingEntry; @@ -56,7 +57,6 @@ import org.eclipse.cdt.managedbuilder.core.ITool; import org.eclipse.cdt.managedbuilder.core.IToolChain; import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin; -import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable; import org.eclipse.cdt.managedbuilder.internal.core.Configuration; import org.eclipse.cdt.managedbuilder.internal.macros.FileContextData; import org.eclipse.cdt.managedbuilder.internal.macros.OptionContextData; @@ -1498,11 +1498,11 @@ public class BuildDescription implements IBuildDescription { } protected Map calculateEnvironment() { - IBuildEnvironmentVariable variables[] = ManagedBuildManager.getEnvironmentVariableProvider().getVariables(fCfg, - true, true); + IEnvironmentVariable[] variables = ManagedBuildManager.getEnvironmentVariableProvider().getVariables(fCfg, + true); Map map = new HashMap<>(); - for (IBuildEnvironmentVariable var : variables) { + for (IEnvironmentVariable var : variables) { map.put(var.getName(), var.getValue()); } return map; diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java index 7098f24baf8..2f1cc38fa69 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/Builder.java @@ -101,7 +101,6 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider private String convertToId; private FileContextBuildMacroValues fileContextBuildMacroValues; private String builderVariablePattern; - private Boolean isVariableCaseSensitive; private String[] reservedMacroNames; private IReservedMacroNameSupplier reservedMacroNameSupplier; private IConfigurationElement reservedMacroNameSupplierElement; @@ -315,9 +314,6 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider builderVariablePattern = builder.builderVariablePattern; - if (builder.isVariableCaseSensitive != null) - isVariableCaseSensitive = builder.isVariableCaseSensitive; - if (builder.reservedMacroNames != null) reservedMacroNames = builder.reservedMacroNames.clone(); @@ -473,11 +469,6 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider // get the 'variableFormat' attribute builderVariablePattern = SafeStringInterner.safeIntern(element.getAttribute(VARIABLE_FORMAT)); - // get the 'isVariableCaseSensitive' attribute - String isCS = element.getAttribute(IS_VARIABLE_CASE_SENSITIVE); - if (isCS != null) - isVariableCaseSensitive = Boolean.parseBoolean(isCS); - // get the reserved macro names String reservedNames = element.getAttribute(RESERVED_MACRO_NAMES); if (reservedNames != null) @@ -1484,16 +1475,6 @@ public class Builder extends HoldsOptions implements IBuilder, IMatchKeyProvider return builderVariablePattern; } - @Override - public boolean isVariableCaseSensitive() { - if (isVariableCaseSensitive == null) { - if (superClass != null) - return getSuperClass().isVariableCaseSensitive(); - return true; - } - return isVariableCaseSensitive.booleanValue(); - } - @Override public String[] getReservedMacroNames() { if (reservedMacroNames == null && superClass != null) diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java index 64ac3c306df..6ae65299220 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/GeneratedMakefileBuilder.java @@ -31,6 +31,7 @@ import org.eclipse.cdt.core.ConsoleOutputStream; import org.eclipse.cdt.core.ErrorParserManager; import org.eclipse.cdt.core.ICommandLauncher; import org.eclipse.cdt.core.IMarkerGenerator; +import org.eclipse.cdt.core.envvar.IEnvironmentVariable; import org.eclipse.cdt.core.model.ICModelMarker; import org.eclipse.cdt.core.resources.ACBuilder; import org.eclipse.cdt.core.resources.IConsole; @@ -47,7 +48,6 @@ import org.eclipse.cdt.managedbuilder.core.IConfiguration; import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo; import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin; -import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable; import org.eclipse.cdt.managedbuilder.internal.buildmodel.DescriptionBuilder; import org.eclipse.cdt.managedbuilder.internal.buildmodel.IBuildModelBuilder; import org.eclipse.cdt.managedbuilder.internal.buildmodel.ParallelBuilder; @@ -978,8 +978,8 @@ public class GeneratedMakefileBuilder extends ACBuilder { launcher.showCommand(true); // Set the environmennt - IBuildEnvironmentVariable variables[] = ManagedBuildManager.getEnvironmentVariableProvider() - .getVariables(cfg, true, true); + IEnvironmentVariable[] variables = ManagedBuildManager.getEnvironmentVariableProvider().getVariables(cfg, + true); String[] envp = null; ArrayList envList = new ArrayList<>(); if (variables != null) { diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java index 043eab79113..c13311800e7 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/core/ManagedBuildInfo.java @@ -19,6 +19,7 @@ import java.util.Iterator; import java.util.List; import java.util.Map; +import org.eclipse.cdt.core.envvar.IEnvironmentVariable; import org.eclipse.cdt.core.model.CModelException; import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.ICProject; @@ -50,7 +51,6 @@ import org.eclipse.cdt.managedbuilder.core.ITool; import org.eclipse.cdt.managedbuilder.core.IToolChain; import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin; -import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable; import org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider; import org.eclipse.cdt.managedbuilder.internal.macros.OptionContextData; import org.eclipse.cdt.managedbuilder.internal.scannerconfig.ManagedBuildCPathEntryContainer; @@ -993,8 +993,8 @@ public class ManagedBuildInfo implements IManagedBuildInfo, IScannerInfo { private String getCWD() { String cwd = ""; //$NON-NLS-1$ - IBuildEnvironmentVariable cwdvar = ManagedBuildManager.getEnvironmentVariableProvider().getVariable("CWD", //$NON-NLS-1$ - getDefaultConfiguration(), false, true); + IEnvironmentVariable cwdvar = ManagedBuildManager.getEnvironmentVariableProvider().getVariable("CWD", //$NON-NLS-1$ + getDefaultConfiguration(), true); if (cwdvar != null) { cwd = cwdvar.getValue().replace('\\', '/'); } diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableProvider.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableProvider.java index 6b84144f62c..0fee0afb75f 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableProvider.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/EnvironmentVariableProvider.java @@ -179,11 +179,6 @@ public class EnvironmentVariableProvider implements IEnvironmentVariableProvider return fMngr.getDefaultDelimiter(); } - @Override - public boolean isVariableCaseSensitive() { - return fMngr.isVariableCaseSensitive(); - } - @Override public IEnvironmentVariableSupplier[] getSuppliers(Object level) { return null; diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/StoredBuildPathEnvironmentContainer.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/StoredBuildPathEnvironmentContainer.java index 4e18abf35da..bdcca87afb1 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/StoredBuildPathEnvironmentContainer.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/envvar/StoredBuildPathEnvironmentContainer.java @@ -23,7 +23,6 @@ import org.eclipse.cdt.internal.core.envvar.EnvVarDescriptor; import org.eclipse.cdt.managedbuilder.core.IConfiguration; import org.eclipse.cdt.managedbuilder.core.IEnvVarBuildPath; import org.eclipse.cdt.managedbuilder.core.ITool; -import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin; import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable; import org.eclipse.cdt.utils.envvar.StorableEnvironment; @@ -49,8 +48,6 @@ public class StoredBuildPathEnvironmentContainer extends StorableEnvironmentLoad private IConfiguration fConfiguration; private StorableEnvironment fEnvironment; private int fPathType; - private boolean fIsVariableCaseSensitive = ManagedBuildManager.getEnvironmentVariableProvider() - .isVariableCaseSensitive(); public StoredBuildPathEnvironmentContainer(int pathType) { fPathType = pathType == IEnvVarBuildPath.BUILDPATH_LIBRARY ? IEnvVarBuildPath.BUILDPATH_LIBRARY @@ -190,7 +187,7 @@ public class StoredBuildPathEnvironmentContainer extends StorableEnvironmentLoad * returns true if the variable names are equal and false otherwise */ private boolean varNamesEqual(String name1, String name2) { - return fIsVariableCaseSensitive ? name1.equals(name2) : name1.equalsIgnoreCase(name2); + return name1.equals(name2); } /* (non-Javadoc) diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/BuildfileMacroSubstitutor.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/BuildfileMacroSubstitutor.java index a937b15f0e4..8b2c7359f51 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/BuildfileMacroSubstitutor.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/macros/BuildfileMacroSubstitutor.java @@ -53,7 +53,6 @@ public class BuildfileMacroSubstitutor extends SupplierBasedCdtVariableSubstitut private static final String PATTERN_MACRO_NAME = "="; //$NON-NLS-1$ private IConfiguration fConfiguration; private IBuilder fBuilder; - private HashSet fCaseInsensitiveReferencedNames; private ICdtVariableManager fVarMngr; private ICConfigurationDescription fCfgDes; @@ -257,26 +256,16 @@ public class BuildfileMacroSubstitutor extends SupplierBasedCdtVariableSubstitut String macroName = macro.getName(); String ref = null; IReservedMacroNameSupplier supplier = getReservedMacroNameSupplier(); - //on win32 all environment variable names are converted to upper case macroName = EnvVarOperationProcessor.normalizeName(macroName); if (supplier == null || !supplier.isReservedName(macroName, fConfiguration)) { String pattern = fBuilder.getBuilderVariablePattern(); if (pattern != null && pattern.indexOf(PATTERN_MACRO_NAME) != -1) { - if (fBuilder.isVariableCaseSensitive() - || getCaseInsensitiveReferencedNames().add(macroName.toUpperCase())) { - ref = pattern.replaceAll(PATTERN_MACRO_NAME, macroName); - } + ref = pattern.replaceAll(PATTERN_MACRO_NAME, macroName); } } return ref; } - protected Set getCaseInsensitiveReferencedNames() { - if (fCaseInsensitiveReferencedNames == null) - fCaseInsensitiveReferencedNames = new HashSet<>(); - return fCaseInsensitiveReferencedNames; - } - /* (non-Javadoc) * @see org.eclipse.cdt.managedbuilder.internal.macros.DefaultMacroSubstitutor#setMacroContextInfo(org.eclipse.cdt.managedbuilder.internal.macros.IMacroContextInfo) */ diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedBuildCPathEntryContainer.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedBuildCPathEntryContainer.java index f79826aaf91..2850c816fcb 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedBuildCPathEntryContainer.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/internal/scannerconfig/ManagedBuildCPathEntryContainer.java @@ -21,6 +21,7 @@ import java.util.Set; import java.util.Vector; import org.eclipse.cdt.build.internal.core.scannerconfig2.CfgScannerConfigProfileManager; +import org.eclipse.cdt.core.envvar.IEnvironmentVariable; import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.IMacroEntry; import org.eclipse.cdt.core.model.IPathEntry; @@ -36,7 +37,6 @@ import org.eclipse.cdt.managedbuilder.core.IManagedBuildInfo; import org.eclipse.cdt.managedbuilder.core.ITarget; import org.eclipse.cdt.managedbuilder.core.ManagedBuildManager; import org.eclipse.cdt.managedbuilder.core.ManagedBuilderCorePlugin; -import org.eclipse.cdt.managedbuilder.envvar.IBuildEnvironmentVariable; import org.eclipse.cdt.managedbuilder.internal.core.ManagedBuildInfo; import org.eclipse.cdt.managedbuilder.scannerconfig.IManagedScannerInfoCollector; import org.eclipse.core.resources.IProject; @@ -147,8 +147,8 @@ public class ManagedBuildCPathEntryContainer implements IPathEntryContainer { IProgressMonitor monitor = new NullProgressMonitor(); IManagedBuildInfo info = ManagedBuildManager.getBuildInfo(project); IConfiguration config = info.getDefaultConfiguration(); - IBuildEnvironmentVariable[] vars = ManagedBuildManager.getEnvironmentVariableProvider() - .getVariables(config, true, true); + IEnvironmentVariable[] vars = ManagedBuildManager.getEnvironmentVariableProvider() + .getVariables(config, true); Properties env = new Properties(); if (vars != null) for (int i = 0; i < vars.length; ++i) diff --git a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/AbstractBuiltinSpecsDetector.java b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/AbstractBuiltinSpecsDetector.java index a372a3a74af..507f5c6cce7 100644 --- a/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/AbstractBuiltinSpecsDetector.java +++ b/build/org.eclipse.cdt.managedbuilder.core/src/org/eclipse/cdt/managedbuilder/language/settings/providers/AbstractBuiltinSpecsDetector.java @@ -777,9 +777,6 @@ public abstract class AbstractBuiltinSpecsDetector extends AbstractLanguageSetti Map envMap = new HashMap<>(); for (IEnvironmentVariable var : getEnvironmentVariables()) { String name = var.getName(); - if (!envMngr.isVariableCaseSensitive()) { - name = name.toUpperCase(); - } envMap.put(name, var.getValue()); } return envMap; @@ -920,7 +917,7 @@ public abstract class AbstractBuiltinSpecsDetector extends AbstractLanguageSetti * Return the best extension to use for calculating spec file from a list of extensions. * @param extensions list of possible extensions to choose from * @return one of the extensions deemed the best one to use from the list - * @since 8.9 + * @since 9.0 */ protected Optional selectBestSpecFileExtension(List extensions) { return extensions.stream().filter(s -> s != null && !s.isEmpty()).findFirst().map(ext -> { diff --git a/build/org.eclipse.cdt.managedbuilder.gnu.ui/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.managedbuilder.gnu.ui/META-INF/MANIFEST.MF index 93f29742738..54e23cbf2d8 100644 --- a/build/org.eclipse.cdt.managedbuilder.gnu.ui/META-INF/MANIFEST.MF +++ b/build/org.eclipse.cdt.managedbuilder.gnu.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.gnu.ui; singleton:=true -Bundle-Version: 8.3.300.qualifier +Bundle-Version: 8.3.400.qualifier Bundle-Activator: org.eclipse.cdt.managedbuilder.gnu.ui.GnuUIPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin @@ -11,7 +11,7 @@ Export-Package: org.eclipse.cdt.managedbuilder.gnu.cygwin, org.eclipse.cdt.managedbuilder.gnu.templates;x-internal:=true, org.eclipse.cdt.managedbuilder.gnu.ui Require-Bundle: org.eclipse.core.runtime;bundle-version="[3.2.0,4.0.0)", - org.eclipse.cdt.managedbuilder.core;bundle-version="[8.1.0,9.0.0)", + org.eclipse.cdt.managedbuilder.core;bundle-version="[9.0.0,10.0.0]", org.eclipse.cdt.core;bundle-version="[7.0.0,8.0.0)", org.eclipse.core.resources Bundle-ActivationPolicy: lazy diff --git a/build/org.eclipse.cdt.managedbuilder.ui/META-INF/MANIFEST.MF b/build/org.eclipse.cdt.managedbuilder.ui/META-INF/MANIFEST.MF index 7826256dfb0..ae0b3c84e55 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/META-INF/MANIFEST.MF +++ b/build/org.eclipse.cdt.managedbuilder.ui/META-INF/MANIFEST.MF @@ -2,7 +2,7 @@ Manifest-Version: 1.0 Bundle-ManifestVersion: 2 Bundle-Name: %pluginName Bundle-SymbolicName: org.eclipse.cdt.managedbuilder.ui; singleton:=true -Bundle-Version: 9.1.600.qualifier +Bundle-Version: 9.1.700.qualifier Bundle-Activator: org.eclipse.cdt.managedbuilder.ui.properties.ManagedBuilderUIPlugin Bundle-Vendor: %providerName Bundle-Localization: plugin @@ -17,7 +17,7 @@ Require-Bundle: org.eclipse.core.resources;bundle-version="[3.2.0,4.0.0)", org.eclipse.cdt.core;bundle-version="[7.0.0,8.0.0)", org.eclipse.cdt.make.core, org.eclipse.cdt.make.ui, - org.eclipse.cdt.managedbuilder.core;bundle-version="[8.7.0,9.0.0)", + org.eclipse.cdt.managedbuilder.core;bundle-version="[9.0.0,10.0.0]", org.eclipse.cdt.ui;bundle-version="[7.0.0,8.0.0)", org.eclipse.ui;bundle-version="[3.2.0,4.0.0)", org.eclipse.ui.console;bundle-version="[3.5.100,4.0.0)", diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/NewVarDialog.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/NewVarDialog.java index 05e357cebda..404d2ce80d4 100644 --- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/NewVarDialog.java +++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/properties/NewVarDialog.java @@ -383,7 +383,7 @@ public class NewVarDialog extends Dialog { private boolean macroNamesEqual(String name1, String name2) { name1 = name1.trim(); name2 = name2.trim(); - return name1.equalsIgnoreCase(name2); + return name1.equals(name2); } /* diff --git a/core/org.eclipse.cdt.core.native/src/org/eclipse/cdt/utils/spawner/EnvironmentReader.java b/core/org.eclipse.cdt.core.native/src/org/eclipse/cdt/utils/spawner/EnvironmentReader.java index ae005dc2e7b..b602d556b53 100644 --- a/core/org.eclipse.cdt.core.native/src/org/eclipse/cdt/utils/spawner/EnvironmentReader.java +++ b/core/org.eclipse.cdt.core.native/src/org/eclipse/cdt/utils/spawner/EnvironmentReader.java @@ -28,7 +28,8 @@ import org.eclipse.core.runtime.Platform; */ public class EnvironmentReader { private static Properties envVars; - private static List toUppercaseEnvironmentVars = Arrays.asList("PATH"); //$NON-NLS-1$ + @SuppressWarnings("nls") + private static List toUppercaseEnvironmentVars = Arrays.asList("PATH", "CYGWIN_HOME", "LANG"); static { boolean isWindows = Platform.OS_WIN32.equals(Platform.getOS()); diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CommandLauncher.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CommandLauncher.java index 0c3d27310e2..ed4c45059d7 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CommandLauncher.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CommandLauncher.java @@ -134,9 +134,6 @@ public class CommandLauncher implements ICommandLauncher { if (pos < 0) pos = envStr.length(); String key = envStr.substring(0, pos); - if (Platform.getOS().equals(Platform.OS_WIN32)) { - key = key.toUpperCase(); - } String value = envStr.substring(pos + 1); fEnvironment.put(key, value); } diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/envvar/IEnvironmentVariableManager.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/envvar/IEnvironmentVariableManager.java index ef559b3c099..935c723a90f 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/envvar/IEnvironmentVariableManager.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/envvar/IEnvironmentVariableManager.java @@ -101,11 +101,5 @@ public interface IEnvironmentVariableManager { */ public String getDefaultDelimiter(); - /** - * @return true if the OS supports case sensitive variables (Unix-like systems) or false - * if it does not (Win32 systems) - */ - public boolean isVariableCaseSensitive(); - public IContributedEnvironment getContributedEnvironment(); } diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvVarCollector.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvVarCollector.java index 2f894f82837..75288d1e690 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvVarCollector.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvVarCollector.java @@ -51,13 +51,10 @@ public class EnvVarCollector { ICoreEnvironmentVariableSupplier supplier) { if (vars == null) return; - boolean isCaseInsensitive = !EnvironmentVariableManager.getDefault().isVariableCaseSensitive(); for (int i = 0; i < vars.length; i++) { IEnvironmentVariable var = vars[i]; if (var != null) { String name = var.getName(); - if (isCaseInsensitive) - name = name.toUpperCase(); boolean noCheck = false; @@ -108,10 +105,6 @@ public class EnvVarCollector { public EnvVarDescriptor getVariable(String name) { if (fMap == null) return null; - - if (!EnvironmentVariableManager.getDefault().isVariableCaseSensitive()) - name = name.toUpperCase(); - return fMap.get(name); } diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvironmentVariableManager.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvironmentVariableManager.java index 11712ff7e5e..23d5b6e2e1f 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvironmentVariableManager.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/internal/core/envvar/EnvironmentVariableManager.java @@ -365,11 +365,6 @@ public class EnvironmentVariableManager implements IEnvironmentVariableManager { return isWin32() ? DELIMITER_WIN32 : DELIMITER_UNIX; } - @Override - public boolean isVariableCaseSensitive() { - return !isWin32(); - } - public ICoreEnvironmentVariableSupplier[] getSuppliers(Object level) { IEnvironmentContextInfo info = getContextInfo(level); if (info != null) diff --git a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/envvar/EnvVarOperationProcessor.java b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/envvar/EnvVarOperationProcessor.java index 1d283d5f299..bbeab8a042c 100644 --- a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/envvar/EnvVarOperationProcessor.java +++ b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/envvar/EnvVarOperationProcessor.java @@ -19,7 +19,6 @@ import java.util.List; import org.eclipse.cdt.core.envvar.EnvironmentVariable; import org.eclipse.cdt.core.envvar.IEnvironmentVariable; -import org.eclipse.cdt.internal.core.envvar.EnvironmentVariableManager; /** * This is an utility class that implements environment variable operations @@ -225,7 +224,6 @@ public class EnvVarOperationProcessor { /** * normalizes the variable name. That is: removes prepended and appended spaces - * and converts the name to upper-case for Win32 systems * @return the normalized name or null in case the name is not valid */ static public String normalizeName(String name) { @@ -233,8 +231,6 @@ public class EnvVarOperationProcessor { return null; if ("".equals(name = name.trim())) //$NON-NLS-1$ return null; - if (!EnvironmentVariableManager.getDefault().isVariableCaseSensitive()) - name = name.toUpperCase(); return name; } diff --git a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/envvar/StorableEnvironment.java b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/envvar/StorableEnvironment.java index ba45db85862..41f0c55a140 100644 --- a/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/envvar/StorableEnvironment.java +++ b/core/org.eclipse.cdt.core/utils/org/eclipse/cdt/utils/envvar/StorableEnvironment.java @@ -20,7 +20,6 @@ import java.util.Map; import org.eclipse.cdt.core.envvar.IEnvironmentVariable; import org.eclipse.cdt.core.settings.model.ICStorageElement; -import org.eclipse.cdt.internal.core.envvar.EnvironmentVariableManager; import org.eclipse.cdt.internal.core.settings.model.ExceptionFactory; import org.eclipse.cdt.utils.envvar.StorableEnvironmentLoader.ISerializeInfo; @@ -315,8 +314,6 @@ public class StorableEnvironment { String getNameForMap(String name) { if (name == null || (name = name.trim()).length() == 0) return null; - if (!EnvironmentVariableManager.getDefault().isVariableCaseSensitive()) - return name.toUpperCase(); return name; } diff --git a/cross/org.eclipse.cdt.build.crossgcc/src/org/eclipse/cdt/internal/build/crossgcc/CrossEnvironmentVariableSupplier.java b/cross/org.eclipse.cdt.build.crossgcc/src/org/eclipse/cdt/internal/build/crossgcc/CrossEnvironmentVariableSupplier.java index 6846033b1c4..df43d11613d 100644 --- a/cross/org.eclipse.cdt.build.crossgcc/src/org/eclipse/cdt/internal/build/crossgcc/CrossEnvironmentVariableSupplier.java +++ b/cross/org.eclipse.cdt.build.crossgcc/src/org/eclipse/cdt/internal/build/crossgcc/CrossEnvironmentVariableSupplier.java @@ -63,9 +63,7 @@ public class CrossEnvironmentVariableSupplier implements IConfigurationEnvironme } public static boolean isVar(String name) { - // Windows has case insensitive env var names - return Platform.getOS().equals(Platform.OS_WIN32) ? name.equalsIgnoreCase(PathEnvironmentVariable.name) - : name.equals(PathEnvironmentVariable.name); + return name.equals(PathEnvironmentVariable.name); } @Override diff --git a/doc/org.eclipse.cdt.doc.isv/guide/deprecated_API_removals.html b/doc/org.eclipse.cdt.doc.isv/guide/deprecated_API_removals.html index 5206a850b18..6f72d13d137 100644 --- a/doc/org.eclipse.cdt.doc.isv/guide/deprecated_API_removals.html +++ b/doc/org.eclipse.cdt.doc.isv/guide/deprecated_API_removals.html @@ -45,6 +45,7 @@
  • Removal of CDT Core Options API.
  • TM Terminal has major changes to support new color and preference functionality.
  • Remove org.eclipse.cdt.core.browser.PathUtil.
  • +
  • Environment Variables are always case sensitive in CDT.
  • Planned Removals after June 2022 @@ -260,9 +261,23 @@

    13. Remove org.eclipse.cdt.core.browser.PathUtil.

    The deprecated class org.eclipse.cdt.core.browser.PathUtil has been removed. Use - org.eclipse.cdt.utils.PathUtil instead. + org.eclipse.cdt.utils.PathUtil instead. See Bug 564123.

    +

    14. Environment Variables are always case sensitive in CDT.

    +

    + The handling of environment and build variables in CDT has changed to being case sensitive. This means + some API changes to remove methods such as isVariableCaseSensitive (see full list below). The PATH and + dome other special environment variables in CDT are always uppercased, such as Path. See Bug 564123. +

    +
      +
    • org.eclipse.cdt.managedbuilder.core.IBuilder.isVariableCaseSensitive() removed.
    • +
    • org.eclipse.cdt.managedbuilder.envvar.IEnvironmentVariableProvider.isVariableCaseSensitive() removed.
    • +
    • org.eclipse.cdt.core.envvar.IEnvironmentVariableManager.isVariableCaseSensitive() removed.
    • +
    +

    Future Deletions

    diff --git a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/utils/Env.java b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/utils/Env.java index 21c599b0072..4b081c81e8a 100644 --- a/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/utils/Env.java +++ b/terminal/plugins/org.eclipse.tm.terminal.view.core/src/org/eclipse/tm/terminal/view/core/utils/Env.java @@ -85,7 +85,8 @@ public class Env { //This is supposed to be a straight copy (no modifications) //except for making getEnvVars private to avoid errors/warnings private static Properties envVars; - private static List toUppercaseEnvironmentVars = Arrays.asList("PATH"); //$NON-NLS-1$ + @SuppressWarnings("nls") + private static List toUppercaseEnvironmentVars = Arrays.asList("PATH", "CYGWIN_HOME", "LANG"); static { boolean isWindows = Platform.OS_WIN32.equals(Platform.getOS());