1
0
Fork 0
mirror of https://github.com/eclipse-cdt/cdt synced 2025-04-23 14:42:11 +02:00

Bug 517581 Keep env var operation on merged vars the same.

If we are merging two env vars and the operations are both
append or prepend, keep that as the operation instead of
replace.

Change-Id: I758a54b8903eabafac38bf2f3f7d7065c0373e70
This commit is contained in:
Doug Schaefer 2017-05-31 12:18:18 -04:00
parent 63ff83042b
commit d3dcd92d8f

View file

@ -52,14 +52,18 @@ public class EnvVarOperationProcessor {
String delimiter = added.getDelimiter();
return new EnvironmentVariable(name,
performAppend(initial.getValue(), added.getValue(), delimiter),
// IEnvironmentVariable.ENVVAR_APPEND,
initial.getOperation() == IEnvironmentVariable.ENVVAR_APPEND
? IEnvironmentVariable.ENVVAR_APPEND
: IEnvironmentVariable.ENVVAR_REPLACE,
delimiter);
}
case IEnvironmentVariable.ENVVAR_PREPEND:{
String delimiter = added.getDelimiter();
return new EnvironmentVariable(name,
performPrepend(initial.getValue(), added.getValue(), delimiter),
// IEnvironmentVariable.ENVVAR_PREPEND,
initial.getOperation() == IEnvironmentVariable.ENVVAR_PREPEND
? IEnvironmentVariable.ENVVAR_PREPEND
: IEnvironmentVariable.ENVVAR_REPLACE,
delimiter);
}
case IEnvironmentVariable.ENVVAR_REPLACE:
@ -155,7 +159,7 @@ public class EnvVarOperationProcessor {
static public List<String> convertToList(String value, String delimiter){
if (value == null)
value = ""; //$NON-NLS-1$
List<String> list = new ArrayList<String>();
List<String> list = new ArrayList<>();
int delLength = delimiter.length();
int valLength = value.length();
@ -182,7 +186,7 @@ public class EnvVarOperationProcessor {
* removes duplicates
*/
static public List<String> removeDuplicates(List<String> value, List<String> duplicates){
List<String> list = new ArrayList<String>();
List<String> list = new ArrayList<>();
Iterator<String> valueIter = value.iterator();
while(valueIter.hasNext()){
String curVal = valueIter.next();