From b8678d977409facd43522a5816cbb5e866dcab81 Mon Sep 17 00:00:00 2001 From: Conor MacNeill Date: Sat, 24 Jun 2000 15:17:00 +0000 Subject: [PATCH] Fix handling of $$ in properties PR: Obtained from: Submitted by: Reviewed by: git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@267697 13f79535-47bb-0310-9956-ffa450edef68 --- src/main/org/apache/tools/ant/ProjectHelper.java | 9 +++++++-- src/main/org/apache/tools/ant/taskdefs/Property.java | 5 ++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/src/main/org/apache/tools/ant/ProjectHelper.java b/src/main/org/apache/tools/ant/ProjectHelper.java index 5321199de..31909892d 100644 --- a/src/main/org/apache/tools/ant/ProjectHelper.java +++ b/src/main/org/apache/tools/ant/ProjectHelper.java @@ -484,9 +484,14 @@ public class ProjectHelper { // assert value!=nil int pos; while( (pos=value.indexOf( "$", prev )) >= 0 ) { - if(pos>0) + if(pos>0) { sb.append( value.substring( prev, pos ) ); - if( value.charAt( pos + 1 ) != '{' ) { + } + if( pos == (value.length() - 1)) { + sb.append('$'); + prev = pos + 1; + } + else if (value.charAt( pos + 1 ) != '{' ) { sb.append( value.charAt( pos + 1 ) ); prev=pos+2; // XXX } else { diff --git a/src/main/org/apache/tools/ant/taskdefs/Property.java b/src/main/org/apache/tools/ant/taskdefs/Property.java index 9cf53582e..6bcfe03ed 100644 --- a/src/main/org/apache/tools/ant/taskdefs/Property.java +++ b/src/main/org/apache/tools/ant/taskdefs/Property.java @@ -101,17 +101,16 @@ public class Property extends Task { public void init() throws BuildException { try { if ((name != null) && (value != null)) { - String v = ProjectHelper.replaceProperties(value, project.getProperties()); if( userProperty ) if (project.getUserProperty(name) == null) { - project.setUserProperty(name, v); + project.setUserProperty(name, value); } else { project.log("Override ignored for " + name, project.MSG_VERBOSE); } else if (project.getProperty(name) == null) { - project.setProperty(name, v); + project.setProperty(name, value); } else { project.log("Override ignored for " + name, project.MSG_VERBOSE);