1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-29 19:45:01 +02:00

Avoid null value being converted to "null" string in environment

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-24 20:50:17 -05:00
parent 5135c9fc85
commit 2b429588f4

View file

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