diff options
author | Jared Burns | 2003-08-29 21:16:00 +0000 |
---|---|---|
committer | Jared Burns | 2003-08-29 21:16:00 +0000 |
commit | efb22268de021ddd9c2ffe829ea103d2bd034413 (patch) | |
tree | 3c71b799ed2d51a5cf3e5c9982ae3176a281be9a /org.eclipse.ui.externaltools/Program Tools Support | |
parent | a3d7c96903c8bb71087607587d10a3da3ed77bdf (diff) | |
download | eclipse.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.java | 27 |
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(); } |