Browse Source

retain the original casiness when handing replaceing case insensitive env properties

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@485295 13f79535-47bb-0310-9956-ffa450edef68
master
Peter Reilly 19 years ago
parent
commit
3fe578a16d
1 changed files with 14 additions and 6 deletions
  1. +14
    -6
      src/main/org/apache/tools/ant/taskdefs/Execute.java

+ 14
- 6
src/main/org/apache/tools/ant/taskdefs/Execute.java View File

@@ -625,24 +625,32 @@ public class Execute {
} }
Vector osEnv = (Vector) getProcEnvironment().clone(); Vector osEnv = (Vector) getProcEnvironment().clone();
for (int i = 0; i < env.length; i++) { for (int i = 0; i < env.length; i++) {
String keyValue = env[i];
// Get key including "=" // Get key including "="
String key = env[i].substring(0, env[i].indexOf('=') + 1);
String key = keyValue.substring(0, keyValue.indexOf('=') + 1);
if (environmentCaseInSensitive) { if (environmentCaseInSensitive) {
// Nb: using default locale as key is a env name // Nb: using default locale as key is a env name
key = key.toLowerCase(); key = key.toLowerCase();
} }
int size = osEnv.size(); int size = osEnv.size();
// Find the key in the current enviroment copy
// and remove it.
for (int j = 0; j < size; j++) { for (int j = 0; j < size; j++) {
String osEnvItem = (String) osEnv.elementAt(j); String osEnvItem = (String) osEnv.elementAt(j);
if (environmentCaseInSensitive) {
osEnvItem = osEnvItem.toLowerCase();
}
if (osEnvItem.startsWith(key)) {
String convertedItem = environmentCaseInSensitive
? osEnvItem.toLowerCase() : osEnvItem;
if (convertedItem.startsWith(key)) {
osEnv.removeElementAt(j); osEnv.removeElementAt(j);
if (environmentCaseInSensitive) {
// Use the original casiness of the key
keyValue = osEnvItem.substring(0, key.length())
+ keyValue.substring(key.length());
}
break; break;
} }
} }
osEnv.addElement(env[i]);
// Add the key to the enviromnent copy
osEnv.addElement(keyValue);
} }
return (String[]) (osEnv.toArray(new String[osEnv.size()])); return (String[]) (osEnv.toArray(new String[osEnv.size()]));
} }


Loading…
Cancel
Save