Browse Source

no code changes, only comments to make sense of what is going on

git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@271895 13f79535-47bb-0310-9956-ffa450edef68
master
Steve Loughran 23 years ago
parent
commit
68cb99cb66
1 changed files with 19 additions and 6 deletions
  1. +19
    -6
      src/main/org/apache/tools/ant/ProjectHelper.java

+ 19
- 6
src/main/org/apache/tools/ant/ProjectHelper.java View File

@@ -438,25 +438,36 @@ public class ProjectHelper {
* <code>${</code> without a closing
* <code>}</code>
*/
public static void parsePropertyString(String value, Vector fragments, Vector propertyRefs)
public static void parsePropertyString(String value, Vector fragments, Vector propertyRefs)
throws BuildException {
int prev = 0;
int pos;
//search for the next instance of $ from the 'prev' position
while ((pos = value.indexOf("$", prev)) >= 0) {

//if there was any text before this, add it as a fragment
//TODO, this check could me modified to go if pos>prev;
//seems like this current version could stick empty strings
//into the list
if (pos > 0) {
fragments.addElement(value.substring(prev, pos));
}

if (pos == (value.length() - 1)) {
//if we are at the end of the string, we tack on a $
//then move past it
if( pos == (value.length() - 1)) {
fragments.addElement("$");
prev = pos + 1;
} else if (value.charAt(pos + 1) != '{' ) {
}
//peek ahead to see if the next char is a property or not
else if (value.charAt(pos + 1) != '{' ) {
//not a property: insert the char as a literal
fragments.addElement(value.substring(pos + 1, pos + 2));
prev = pos + 2;
} else {
//property found, extract its name or bail on a typo
int endName = value.indexOf('}', pos);
if (endName < 0) {
throw new BuildException("Syntax error in property: "
throw new BuildException("Syntax error in property: "
+ value );
}
String propertyName = value.substring(pos + 2, endName);
@@ -465,9 +476,11 @@ public class ProjectHelper {
prev = endName + 1;
}
}

//no more $ signs found
//if there is any tail to the file, append it
if (prev < value.length()) {
fragments.addElement(value.substring(prev));
}
}
//end class
}

Loading…
Cancel
Save