sbailliez 01/11/14 14:18:18
Modified: src/main/org/apache/tools/ant/taskdefs/optional/perforce
P4Change.java
Log:
Fixed the description bug reported by Gerhard Langs <[EMAIL PROTECTED]>
Description is now backslashed so that delimiters are backslashed correctly
and do not confuse Oro.
Based on a patch from Magesh Umasankar <[EMAIL PROTECTED]>
Added basic test case to ensure fix.
Revision Changes Path
1.5 +23 -2
jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Change.java
Index: P4Change.java
===================================================================
RCS file:
/home/cvs/jakarta-ant/src/main/org/apache/tools/ant/taskdefs/optional/perforce/P4Change.java,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -r1.4 -r1.5
--- P4Change.java 2001/10/28 21:30:22 1.4
+++ P4Change.java 2001/11/14 22:18:18 1.5
@@ -58,8 +58,6 @@
package org.apache.tools.ant.taskdefs.optional.perforce;
-
-
import org.apache.tools.ant.BuildException;
import org.apache.tools.ant.Project;
@@ -120,6 +118,8 @@
} else if(util.match("/<enter description
here>/",line)) {
+ // we need to escape the description in case
there are /
+ description = backslash(description);
line = util.substitute("s/<enter description
here>/" + description + "/", line);
} else if(util.match("/\\/\\//", line)) {
@@ -134,6 +134,27 @@
}});
return stringbuf.toString();
+ }
+
+ /**
+ * Ensure that a string is backslashing slashes so that it does not
+ * confuse them with Perl substitution delimiter in Oro. Backslashes are
+ * always backslashes in a string unless they escape the delimiter.
+ * @param value the string to backslash for slashes
+ * @return the backslashed string
+ * @see < a
href="http://jakarta.apache.org/oro/api/org/apache/oro/text/perl/Perl5Util.html#substitute(java.lang.String,%20java.lang.String)">Oro</a>
+ */
+ protected String backslash(String value){
+ final StringBuffer buf = new StringBuffer(value.length());
+ final int len = value.length();
+ for (int i = 0; i < len; i++){
+ char c = value.charAt(i);
+ if (c == '/'){
+ buf.append('\\');
+ }
+ buf.append(c);
+ }
+ return buf.toString();
}
/* Set Description Variable. */
--
To unsubscribe, e-mail: <mailto:[EMAIL PROTECTED]>
For additional commands, e-mail: <mailto:[EMAIL PROTECTED]>