Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJared Burns2003-08-29 21:16:00 +0000
committerJared Burns2003-08-29 21:16:00 +0000
commitefb22268de021ddd9c2ffe829ea103d2bd034413 (patch)
tree3c71b799ed2d51a5cf3e5c9982ae3176a281be9a /org.eclipse.ui.externaltools/Program Tools Support
parenta3d7c96903c8bb71087607587d10a3da3ed77bdf (diff)
downloadeclipse.platform.debug-efb22268de021ddd9c2ffe829ea103d2bd034413.tar.gz
eclipse.platform.debug-efb22268de021ddd9c2ffe829ea103d2bd034413.tar.xz
eclipse.platform.debug-efb22268de021ddd9c2ffe829ea103d2bd034413.zip
Bug 42193 - program arguments with whitespace not display in a good way
Diffstat (limited to 'org.eclipse.ui.externaltools/Program Tools Support')
-rw-r--r--org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java27
1 files changed, 22 insertions, 5 deletions
diff --git a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java
index 5c792e8c5..d16d33d28 100644
--- a/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java
+++ b/org.eclipse.ui.externaltools/Program Tools Support/org/eclipse/ui/externaltools/internal/program/launchConfigurations/ProgramLaunchDelegate.java
@@ -190,13 +190,30 @@ public class ProgramLaunchDelegate implements ILaunchConfigurationDelegate {
}
private String generateCommandLine(String[] commandLine) {
- if (commandLine.length < 1) {
+ if (commandLine.length < 1)
return ""; //$NON-NLS-1$
- }
- StringBuffer buf= new StringBuffer(commandLine[0]);
- for (int i= 1; i < commandLine.length; i++) {
+ StringBuffer buf= new StringBuffer();
+ for (int i= 0; i < commandLine.length; i++) {
buf.append(' ');
- buf.append(commandLine[i]);
+ char[] characters= commandLine[i].toCharArray();
+ StringBuffer command= new StringBuffer();
+ boolean containsSpace= false;
+ for (int j = 0; j < characters.length; j++) {
+ char character= characters[j];
+ if (character == '\"') {
+ command.append('\\');
+ } else if (character == ' ') {
+ containsSpace = true;
+ }
+ command.append(character);
+ }
+ if (containsSpace) {
+ buf.append('\"');
+ buf.append(command);
+ buf.append('\"');
+ } else {
+ buf.append(command);
+ }
}
return buf.toString();
}

Back to the top