Browse Source

Changes the translateline method so that backslash escaping only applies to

the quote characters " and '.


git-svn-id: https://svn.apache.org/repos/asf/ant/core/trunk@267890 13f79535-47bb-0310-9956-ffa450edef68
master
Conor MacNeill 25 years ago
parent
commit
dbf8062131
2 changed files with 17 additions and 10 deletions
  1. +1
    -1
      src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java
  2. +16
    -9
      src/main/org/apache/tools/ant/types/Commandline.java

+ 1
- 1
src/main/org/apache/tools/ant/taskdefs/optional/ejb/WeblogicDeploymentTool.java View File

@@ -149,7 +149,7 @@ public class WeblogicDeploymentTool extends GenericDeploymentTool {
org.apache.tools.ant.taskdefs.Java javaTask = null;
try {
String args = "-noexit " + sourceJar.getPath().replace('\\', '/') + " " + destJar.getPath().replace('\\', '/');
String args = "-noexit " + sourceJar.getPath() + " " + destJar.getPath();
javaTask = (Java) getTask().getProject().createTask("java");
javaTask.setClassname("weblogic.ejbc");


+ 16
- 9
src/main/org/apache/tools/ant/types/Commandline.java View File

@@ -84,9 +84,8 @@ import java.util.StringTokenizer;
*/
public class Commandline {

private Vector definition = new Vector();
private Vector arguments = new Vector();
private String executable = null;
private Argument argument = null;

public Commandline(String to_process) {
super();
@@ -166,7 +165,7 @@ public class Commandline {
*/
public Argument createArgument() {
Argument argument = new Argument();
definition.addElement(argument);
arguments.addElement(argument);
return argument;
}

@@ -209,9 +208,9 @@ public class Commandline {
* <code>addValue</code> or the argument object.
*/
public String[] getArguments() {
Vector result = new Vector(definition.size()*2);
for (int i=0; i<definition.size(); i++) {
Argument arg = (Argument) definition.elementAt(i);
Vector result = new Vector(arguments.size()*2);
for (int i=0; i<arguments.size(); i++) {
Argument arg = (Argument) arguments.elementAt(i);
String[] s = arg.getParts();
for (int j=0; j<s.length; j++) {
result.addElement(s[j]);
@@ -300,10 +299,18 @@ public class Commandline {
}
} else if ("\\".equals(nextTok)) {
if (tok.hasMoreTokens()) {
current.append(tok.nextToken());
String escapedToken = tok.nextToken();
char escapedChar = escapedToken.charAt(0);
if (escapedChar == '\\' || escapedChar == '\'' ||
escapedChar == '\"') {
current.append(escapedToken);
}
else {
current.append("\\" + escapedToken);
}
} else {
throw new BuildException("stray backslash in "
+ to_process);
// just add the backslash
current.append("\\");
}
} else {
current.append(nextTok);


Loading…
Cancel
Save