From 21377164562efab742036a08ba3890dead6a98c8 Mon Sep 17 00:00:00 2001 From: Andrew Gvozdev Date: Thu, 15 Mar 2012 23:50:34 -0400 Subject: [PATCH] bug 261976: Console does NOT display quoted command line options. --- .../org/eclipse/cdt/core/CommandLauncher.java | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CommandLauncher.java b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CommandLauncher.java index f8fb47ed057..a68f8df415a 100644 --- a/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CommandLauncher.java +++ b/core/org.eclipse.cdt.core/src/org/eclipse/cdt/core/CommandLauncher.java @@ -254,11 +254,23 @@ public class CommandLauncher implements ICommandLauncher { return state; } + @SuppressWarnings("nls") protected void printCommandLine(OutputStream os) { if (os != null) { - String cmd = getCommandLine(getCommandArgs()); + StringBuffer buf = new StringBuffer(); + if (fCommandArgs != null) { + for (String commandArg : getCommandArgs()) { + if (commandArg.contains(" ") || commandArg.contains("\"") || commandArg.contains("\\")) { + commandArg = '"' + commandArg.replaceAll("\\\\", "\\\\\\\\").replaceAll("\"", "\\\\\"") + '"'; + } + buf.append(commandArg); + buf.append(' '); + } + buf.append(lineSeparator); + } + try { - os.write(cmd.getBytes()); + os.write(buf.toString().getBytes()); os.flush(); } catch (IOException e) { // ignore;