Skip to content
Permalink
Browse files
make commands work in directories with spaces when using a response f…
…ile as well, Issue 41387

git-svn-id: https://svn.apache.org/repos/asf/ant/antlibs/dotnet/trunk@498915 13f79535-47bb-0310-9956-ffa450edef68
  • Loading branch information
bodewig committed Jan 23, 2007
1 parent a967dff commit 0f117c3e0b1f6f1bb7e3471574bc08a37dc69d62
Showing 2 changed files with 20 additions and 1 deletion.
@@ -22,6 +22,11 @@
</properties>

<release version="SVN trunk" date="unpublished">
<action type="fix" issue="41387">
The compilation tasks failed if the source files resided in a
directory with spaces in its full path and a response file was
used.
</action>
</release>

<release version="1.0" date="2006-11-06">
@@ -42,6 +42,7 @@
import org.apache.tools.ant.taskdefs.Execute;
import org.apache.tools.ant.taskdefs.ExecuteStreamHandler;
import org.apache.tools.ant.taskdefs.LogStreamHandler;
import org.apache.tools.ant.taskdefs.condition.Os;
import org.apache.tools.ant.types.Commandline;

/**
@@ -58,6 +59,12 @@ public class NetCommand {

private static final FileUtils FILE_UTILS = FileUtils.getFileUtils();

private static final boolean IS_WINDOWS;

static {
IS_WINDOWS = Os.isFamily("windows");
}

/**
* owner project
*/
@@ -351,7 +358,14 @@ private void setExecutableCommandLine() {
PrintWriter out = new PrintWriter(new BufferedOutputStream(fos));
//start at 1 because element 0 is the executable name
for (int i = 1; i < commands.length; ++i) {
out.println(commands[i]);
if (IS_WINDOWS && commands[i].indexOf(" ") > -1) {
String q = commands[i].indexOf("\"") > -1 ? "'" : "\"";
out.print(q);
out.print(commands[i]);
out.println(q);
} else {
out.println(commands[i]);
}
}
out.flush();
out.close();

0 comments on commit 0f117c3

Please sign in to comment.