1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-03-28 14:56:28 +01:00

Avoid null value being converted to "null" string in environment (#1096)

If the CDT Variable is APPEND or PREPEND, and the incoming environment
did not contain that variable name, the resulting environment would
have null.

For example, if PATH was not set on the incoming environment, and
PATH was supposed to be prepended with /usr/bin, this method
would have set PATH=/usr/bin:null

This change ensures that the delimeter + null are not prended/appended
when the incoming value is null.
This commit is contained in:
Jonah Graham 2025-02-25 21:55:40 -05:00 committed by GitHub
parent 6f818cdffe
commit 74c4844357
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -457,12 +457,24 @@ public class EnvironmentVariableManager implements IEnvironmentVariableManager {
case IEnvironmentVariable.ENVVAR_REPLACE: case IEnvironmentVariable.ENVVAR_REPLACE:
env.put(name, var.getValue()); env.put(name, var.getValue());
break; break;
case IEnvironmentVariable.ENVVAR_APPEND: case IEnvironmentVariable.ENVVAR_APPEND: {
env.put(name, env.get(name) + var.getDelimiter() + var.getValue()); String oldValue = env.get(name);
if (oldValue == null) {
env.put(name, var.getValue());
} else {
env.put(name, oldValue + var.getDelimiter() + var.getValue());
}
break; break;
case IEnvironmentVariable.ENVVAR_PREPEND: }
env.put(name, var.getValue() + var.getDelimiter() + env.get(name)); case IEnvironmentVariable.ENVVAR_PREPEND: {
String oldValue = env.get(name);
if (oldValue == null) {
env.put(name, var.getValue());
} else {
env.put(name, var.getValue() + var.getDelimiter() + oldValue);
}
break; break;
}
case IEnvironmentVariable.ENVVAR_REMOVE: case IEnvironmentVariable.ENVVAR_REMOVE:
env.remove(name); env.remove(name);
break; break;